7,251

(273 odpowiedzi, napisanych Programowanie - 8 bit)

> Teoretycznie mogę, ale musiałbym za dużo przerabiać. Mogę ci podać wynik w ramkach VBL, ale do tego przydałoby się, żeby pętla wykonywała się większą liczbę razy (np. kilkadziesiąt tysięcy razy) dla lepszej dokładności.

sadze ze widoczny efekt bedzie juz przy tak malej petli ktora zmiesci sie w 1 ramce i kazdy bedzie mogl zobaczyc na wlasne oczy ile to trwa.

> Nie bardzo rozumiem, po co ładujesz 7 do rejestru B.

czlowiek cale zycie sie uczy (licznik petli)... moze czas na assa z80?


    ld HL,$ffff
    ld A,$3f
loop:
    ld (HL),$00
    dec HL
    cp H
    jr NZ,loop

nie zmiesci sie w ramce, wytlumaczylem wczesniej dlaczego procka powinna zmiescic sie w ramce

7,252

(273 odpowiedzi, napisanych Programowanie - 8 bit)

jest tam taka masa rejestrow ze automodyfikacja raczej nie byla by potrzebna... chociaz...

7,253

(273 odpowiedzi, napisanych Programowanie - 8 bit)

sporo czasu zabiera aktualizacja pc z80 to o czym piszesz Pecus bylo by mysle o 1/4 szybsze od emulacji w locie...

7,254

(273 odpowiedzi, napisanych Programowanie - 8 bit)

tu lezy program testowy, ktory bede chcial uruchomic na atari:

http://atari.pl/z80test.sna
programik mozna uruchomic pod dowolnym emulatorem spektrumny.
rysuje migajacy roznokolorowy pasek w pamieci atrybutow

    ld a, 0xc8
    ld b, 0x07
    ld hl, 0x5800
lo:ld (hl), a
    inc hl
    add a, 0x08
    djnz lo
     
swoja droga w assie z80 pisze sie prawie jak w basicu ;-) faktycznie podnad 500 rozkazow
jesli ktos wie jak wydobyc pisk (beep) z gumiaka i jak obslugiwac klawisze to zapraszam na priv moze sie cos na gumowca napisze ;-)

wracajac do emulatora z80 na 6502 (nie trumny na atari), mam pewne przemyslenia jak przyspieszyc emulacje:
- brak ochrony pamieci (dlaczego emulator ma dbac o to zeby nie dac sie wyrabac zle napisanemu programowi w z80?) - to odnosnie blokowania zapisu do rom
- umiejscowienie pamieci emulowanego proca w liniowym ramie (65816 sie klania)
- napotkanie rozkazu nieobslugiwanego powoduje opuszczenie emulatora

jeszcze nie wiem jak zaemulowac rejestr stanu z80...

na dniach program

---
@draco030, jesli mozesz uruchom ten programik moze w taki sposob:

    lda #50
q  cmp vcount
    bne q

    sta wsync
    sta colpf2

    jmp emulator

po skonczeniu dzialania petli z80

    lda colpf2s
    sta colpf2

i tu skok do poczatku czyli zerowania z80 i znowu petla

pozwoli to 'zobaczyc' jak toto szybko dziala. i pokaz skrinszota :-)

pozdrawiam

7,255

(273 odpowiedzi, napisanych Programowanie - 8 bit)

romu zxspectrum sciagal nie bede ale pociagne jakies tutoriale assa z80 i zadzialam na tych przykladach.

przydala by sie statystyka ktore rozkazy i jak czesto wystepuja w programach...

7,256

(273 odpowiedzi, napisanych Programowanie - 8 bit)

> Czemu? Znasz rozkaz, który po pobraniu opkodu nie wymaga zwiększenia PC?

po pobraniu nie, po wykonaniu owszem - chociazby JP - a to jest dla nas istotne wykonujemy rozkaz i oczekujemy aktualnych wartosci w rejestrach.

pc nie zawsze sie zwieksza o 1: rodzina ADC, SUB, OR, XOR, CP, INC, DEC, RLC, SRA, JP, CALL itd itd dwa razy robisz aktualizacje pc a wystarczy raz przy rozkazie (bo juz wiadomo co to bedzie) u Ciebie nie wiadomo dlatego 2 razy robisz to samo a cykle leca.

> Zaimplementuj, zdebuguj, pogadamy

przyjmuje wyzwanie. prosze o przykladowy w miare krotki kod z80 z iloscia cykli 6502 w jakim sie wykonal, moze byc lista niepowiazanych rozkazow tylko dla sprawdzenia... od podania przykladu prosze o tydzien czasu na napisanie emula (tydzien jak nie bedzie w przykladowym kodzie udziwnien). moze mi sie uda :-)

7,257

(273 odpowiedzi, napisanych Programowanie - 8 bit)

przyklad LDIR i LDD maja ten sam kod, tu beda miec ten sam adres skoku ale 'operand' bedzie wyznaczal ktoryu rozkaz bedzie wykonany - 256 tablice wystarcza


---
powyzsza petla dekodowania moze byc zmniejszona do 25 cykli (zawsze, a nie 29-51 u Ciebie), tylko trzeba zadbac o wlasciwe korzystanie z rej. y i to wydaje mi sie miejsce ktore pozwoli znacznie przyspieszyc emulacje.

moim skromnym zdaniem procedura dekodujaca powinna byc jak najkrotsza (wykonywana najczesciej) a ciezar aktualizacji rejestru pc spoczywac na procedurze wykonywania rozkazow. patrzac na to globalnie szybkosc emulacji powinna byc wieksza w moim przykladzie (nawet gdy dorobie stronicowanie po 16kb)

7,258

(273 odpowiedzi, napisanych Programowanie - 8 bit)

emulgator:

1. rejestry z80 na stronie zerowej poukladane tak, zeby mozna bylo uzywac adresowania (),y czyli np. rej H i L leza w kolejnosci L, H itd.
2. petla dekodujaca na stronie zerowej
3. tablice skokow 256b x 2 (L adresu, H adresu procedury emulacji rozkazu)
4. pamiec od $4000 - 32kb
5. dbamy przy operacji na stosie i skokach bezposrednich z80 o wlasciwa wartosc pc - pc powiekszone jest o $4000


petla dekodujaca na stronie zerowej:
start:
ldy #0
lda (pc),y
tax
lda Lo_tab,x
sta _jmp+1
lda Hi_tab,x
sta _jmp+2
_jmp:
jmp $ffff - 27 cykli i mamy zdekodowany rozkaz z80



procedura emulacji LD (HL),$n
_LD
iny
lda (PC),y   - argument
dey
sta (HL),y   - do pamieci
inc pc
bne _LDend
inc pc+1
bpl _LDend
lsr pc+1     - pc od $4000 do $7fff
jmp start
-- wlasnie zauwazylem ze pc ma sie zwiekszyc o 2 wiec tu wchodzi w gre procedura z adc #2


i to tyle, emulec nie jest taki ciezki do zrobienia cos mi sie wydaje. cos przegapilem?


a 65816 swoja droga by sie przydal, nie trzeba by bylo stronicowac pamieci z80...

---
tak chcialem zeby emulec zmiescil sie tak w 4 kb :-) i uruchomil na 65xe bez rozszerzenia dla z80 i 32kb ramu

---
jak wyglada Twoja procedura dekodowania rozkazu?

---
500 rozkazow :-) ufff to ja chyba zerknalem na inna tabele rozkazow z80 :-) zlamilem :-)

7,259

(273 odpowiedzi, napisanych Programowanie - 8 bit)

duzo bo procka aktualizujaca pc wyglada tak:

clc
lda pc
adc #1
sta pc
lda pc+1
adc #0
sta pc+1

ale moze wygladac rowniez tak:

inc pc
bne end
inc pc+1
bpl end (32 kb ramu)
asl pc+1
end

a wtedy z 18 cykli robi sie od 8, bardzo rzadko 15 a w szczegolnym przypadku 19 co daje -10 cykli na interpretacji prawie kazdego rozkazu

7,260

(273 odpowiedzi, napisanych Programowanie - 8 bit)

NOP - z warunkami jak wyzej czyli petla, skoki, interpretacja rozkazu i powrot do petli to 48 cykli 6502
LD (HL),$x - 62 cykle 6502

tylko, ze nie biore pod uwage istnienia romu czyli gdzie z80 chce zapisac tam zapisze (oczywisice w granicach swojej pamieci 16kb)

7,261

(273 odpowiedzi, napisanych Programowanie - 8 bit)

pc aktualizujesz podczas wykonywania czy dekodowania rozkazu?

podaj rozkaz ktory wykonuje sie najdluzej

7,262

(273 odpowiedzi, napisanych Programowanie - 8 bit)

sprawdzilem ile bedzie wykonywal sie rozkaz:

LD Reg,$n   - 7 cykli z80 (zaladuj do Reg: A,B,C,D,E,H,L wartosc 8bit n) - nie zmienia rej stanu procesora?

i wyszlo mi, ze petla, skoki, interpretacja rozkazu i powrot do petli to 58 cykli 6502

@drac030 Twoje 32-54 cykle obejmowaly petle interpretacji?

7,263

(273 odpowiedzi, napisanych Programowanie - 8 bit)

program startuje od $0000 (fizycznie $4000) max wielkosc pamieci to 16kb prosze o jakis prosty kod:

hex, mnemonik z80, ilosc cykli z80

moze jakies dodawanie, albo operacje na pamieci, moze cos w petli oraz ilosc cykli po zakonczeniu dzialania z80 i emulowanego z80 na 6502 - cos z ograniczona iloscia rozkazow (chce sprobowac ale nie bede pisal wszystkiego)

chcialbym miec porownanie...

7,264

(273 odpowiedzi, napisanych Programowanie - 8 bit)

witam,

zastanawiam sie nad mozliwoscia emulacji procesora z80 na 6502. chcialbym sie dowiedziec jakie sa Wasze przemyslenia na ten temat.

- szybkosc dzialania,
- wielkosc i umiejscowienie pamieci emulowanego proca

7,265

(3 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

nie slyszalem o takim komputerze

7,266

(15 odpowiedzi, napisanych Fabryka - 8bit)

POTRZEBUJE przetlumaczyc ten tekst na angielski. na atariage toczy sie konkurs w hiscore i nie moga sobie poradzic z regulami :(



Ponumerowane płytki spadają z góry jak w tetrisie. Należy je ułożyć na dole w ten sposób, aby numery od 1 do 9 nie powtórzyły się ani razu w danej kolumnie, rzędzie, bądź wydzielonym obszarze 3 na 3. Pomylić można się tylko trzy razy (CHANCES). Dzikie płytki, bez żadnego numeru, nie mają żadnej wartości i mogą być ułożone gdziekolwiek, bez łamania zasad gry Sudoku.
Otrzymujesz punkty (POINTS) za wypełnienie płytkami rzędów (ROWS), kolumn (COLUMNS) lub obszarów 3 na 3 (BOXES). Premię można uzyskać także za stworzenie poziomej bądź pionowej trójki (TRIPLES), która używa trzech kolejnych obszarów 3 na 3. Ułożenie podobnej kombinacji spowoduje, że każdy zestaw trzech identycznych numerów zostanie zamieniony w dzike płytki. Przemiana ta znacznie ułatwia późniejszą fazę rozgrywki.

Punktacja:
- wypełniony rząd ? 330 punktów,
- wypełniona kolumna ? 440 punktów,
- wypełniony kwadrat ? 390 punktów,
? pozioma i pionowa trójka ? 500 punktów.

Każdy żeton bonusowy (czarny) będzie punktowany dodatkowo 200 punktami, ale pod warunkiem, że znajdzie się w trójce. Każdy żeton to 10 punktów. Przyspieszenie opadania żetonu również jest punktowane, w ten sposób, że dodaje się punkt za każdy wyższy poziom. Po zakończeniu rozgrywki na danym poziomie odejmowane są punkty (100) za niepotrzebne klocki powyżej pola sudoku.

Ułatwienia:
- Powyżej obszaru planszy sudoku 9x9 znajdują się dwa rzędy, w których można odkłada niepotrzebne klocki, w tych dwóch rzędach nie obowiązują zasady sudoku.
- przy przejściu do następnego poziomu gracz otrzymuje dodatkowe życie (CHANCES) w przypadku gdy chances jest mniejsze od 3

7,267

(7 odpowiedzi, napisanych Bałagan)

mily dla oka jest jeszcze GORF

7,268

(7 odpowiedzi, napisanych Bałagan)

najlepsza gra w stylu galagi/space invaders

prawda?

7,269

(26 odpowiedzi, napisanych Różne)

tak, za 10 lat ktos zobaczy scrolla, przeczyta faki i na 100% bedzie wiedzial ze to demko jest swiateczne/okolswiateczne :-) no zainteresowani beda pamietac ;)

swoja droga demko jest wzorcowe, taki oldskól polskiej sceny atarowej. :) oczywiscie 10 pkt :)

7,270

(26 odpowiedzi, napisanych Różne)

praca nie na temat.

poza tym 93% kodu zerznietego z sudoku

no i dzojstik nie dzial, czym tam sie steruje?

7,271

(22 odpowiedzi, napisanych Bałagan)

ogolnie widac dwie tendencje. pierwsza sladem np xraya to robienie sobie jaj z kolegi Sikora i traktowanie jego postow jako tradycyjnego spamu, druga reprezentowana przez np epiego to modyfikacja regul konkursow sikora pod dzisiejsze realia i byc moze aktywowanie ;-) atarowcow.

te dwie drogi nie krzyzuja sie. wyjscie jest jedno: dwa konkursy, jeden realny, drugi z zasadami jak dotychczas ;-)

7,272

(22 odpowiedzi, napisanych Bałagan)

heh ja chcialem na wspomniany przez macgyvera konkurs walnac pacmana w ascii ale braklo czasu... wiecej jak 1 dnia ;-)

oglolnie na konkury musi byc wiecej czasu, juz nawet nie na samo kodowanie, ale na przemyslenie tego co by sie chcialo zrobic - nie zawsze pierwsza mysl jest dobra.

7,273

(79 odpowiedzi, napisanych Bałagan)

caly ten konkursik ... poziomem przypomina teksty scenowcow z demosow i magow atarowskich sprzed kilkunastu lat. zenada

7,274

(141 odpowiedzi, napisanych Bałagan)

i za kolejne 20 lat problem bedzie nierozstrzygniety. sprawa jest prosta - sa tacy, ktorzy lubia szatynki i tacy, ktorzy przepadaja za rudymi ale i tak wszyscy uzywaja blondynek

7,275

(35 odpowiedzi, napisanych Sprawy atari.area)

e tam, przyzwyczaic sie trzeba... linkow tylko szkoda