7,201

(63 odpowiedzi, napisanych Software, Gry - 8bit)

a ja ciupie w
super cobra !, pacman i eee flowers manie :)

7,202

(273 odpowiedzi, napisanych Programowanie - 8 bit)

dely: na 6502 nie mam takich ambicji. tak jak mowil laoo, mozna go pisac dowolnie dlugo, dlatego poszedlem na latwizne i sprobuje uruchomic deathchasa, jak trafi na jakis rozkaz nie obslugiwany to dopisuje... przy okazji mniej wiecej wiem ktory rozkaz ma jakies bledy/zle dziala/wolno dziala /nie dziala itp.

drzewa w ruchu: http://atari.pl/deathchase1.rar

7,203

(273 odpowiedzi, napisanych Programowanie - 8 bit)

taki rozkaz porusza drzewami:
_ed_b8          equ *         ; LDDR - bc bajtow z hl do de, zmniejsz o jeden bc,hl,de

                ldy #0

_ed_b8_3  lda z80_c
                bne _ed_b8_2
                lda z80_b
                bne _ed_b8_1

                rts

_ed_b8_1  dec z80_b
_ed_b8_2  dec z80_c

                lda (z80_hl),y
                sta (z80_de),y
               
                lda z80_l
                bne *+4
                dec z80_h
                dec z80_l

                lda z80_e
                bne *+4
                dec z80_d
                dec z80_e

                jmp _ed_b8_3

--
pokaze jak nie bedzie sie wieszal ... mam gdzies buga... szukam, moze dzis wieczor pokaze juz cos dzialajacego

7,204

(273 odpowiedzi, napisanych Programowanie - 8 bit)

nie mam nic na swoje usprawiedliwienie, moze jedynie to ze pisze w nocy i malo co mysle, pozniej jak czytam te wypociny to az wstyd...

http://atari.pl/deathchase.rar

tak to chodzi (jeszcze nie dziala jak trzeba wszystko - drzewa sie nie ruszaja - procka wymaga rozkazu, ktorego jeszcze nie napisalem...

7,205

(273 odpowiedzi, napisanych Programowanie - 8 bit)

sorka za podpisywanie pod soba, ale jest mus.

probowalem uruchomic gre deathchase no 1 wsrod 100 najlepszych gier na trumne. program dziala ok poltory sekundy heh.
http://atari.pl/dctest.gif

mam dwie sprawy:

1. kto ma pomysl na rozsadne wprowadzenie kolorow na ekran - moze na vbi postawic procedurke, ktora przeszuka pamiec atrybutow zx i skoryguje pamiec dla drugiej DL ? bedzie migalo ale jakas namiastka kolorow bedzie. ???

2. potrzebuje kodu 6502 dlarozkazow z80 (jak historia pokazala warto prosic o pomoc :) )
- LDDR - kopiuje BC (B-starszy bajt) bajtow z adresu wskazanego przez HL do pamieci wskazanej przez DE, podobne dzialanie jak LDIR tylko ze tu HL,BC,DE maja zostac zmniejszone o 1 po przekopiowaniu jednego bajtu a nie jak tam BC zmniejszany a HL i DE zwiekszane
- LD (ix+n),m - zaladuje liczbe m do pamieci pod adres w IX +/-n  - n jest liczba w kodzie u2

_dd_36
                iny
                lda (z80_pc),y    ; jakie n
                bmi _dd_36_1
                iny                ; dodatnia
                lda (z80_pc),y     ; m
                tax
                dey
                lda (z80_pc),y     ; n
                tay
                txa
                sta (z80_ix),y     ; m do ix+n
                ldy #0
                rts
_dd_36_1
                eor #255        ; ujemna
                adc #1
                sta temp_z      ; n
                lda z80_ixl
                sec
                sbc temp_z
                sta temp_z
                lda z80_ixh
                sbc #0
                sta temp_z1     ; temp_z jest ix-n
                iny
                lda (z80_pc),y  ; m
                sta (temp_z),y  ; m do ix-n
                ldy #0
                clc
                rts

7,206

(273 odpowiedzi, napisanych Programowanie - 8 bit)

a poza tym jak mowil (chyba), program obslugi karty mozna dogrywac z pliku :-)

http://atari.pl/circle.obx  - bugfix i demo teraz startuje tak jak na zxie.

7,207

(273 odpowiedzi, napisanych Programowanie - 8 bit)

elektron :-) vbxe karta grafiki i emulator zx :-)

ok. tym czasem powprowadzalem te zmiany o ktorych mowil tebe i probe (wszystkie 2,3,4 bajtowe wykonuja sie teraz szybciej) popredni przyklad circle idzie teraz ponizej 12 ale sporo powyzej 11% (metoda pomiaru jak poprzednio)

natomiast zeby pokazac jak wygladaja kolorki zxspectrum bez kolorkow atari przenioslem cos takiego:
http://pouet.net/prod.php?which=1983
i wyglada to tak:
http://atari.pl/05.rar - szybkosc hmm lekko ponizej 6% (poimiar jak poprzednio)

7,208

(273 odpowiedzi, napisanych Programowanie - 8 bit)

macie racje, mysle ze jeszcze zerowanie rej C z80 mozna wylaczyc poza petle, zerowanie znacznika C 6502 tez mozna pominac - prezy wejsciu i wyjsciu z kazdej procedury rozkazu z80 dbamy o to zeby rej y i c 6502 byly wyzerowane.

drugie podejscie:

_ed_b0        equ *      ; LDIR

        ldx z80_c
        beq _ed_b02
                
_ed_b05 ldy #0
_ed_b03 lda (z80_hl),y
        sta (z80_de),y
        iny
        dex
        bne _ed_b03

        tya        
        adc z80_l
        sta z80_l
        bcc _ed_b01
        inc z80_h
        clc

_ed_b01 tya
        adc z80_e
        sta z80_e
        bcc _ed_b02
        inc z80_d
        clc

_ed_b02 lda z80_b
        beq _ed_b04    ; koniec
        dec z80_b
        dex
        jmp _ed_b05    ; kopiuj

_ed_b04 ldy #0
        sty z80_c

moze teraz?

7,209

(273 odpowiedzi, napisanych Programowanie - 8 bit)

rozkaz z80 LDIR dziala mniej wiecej tak:

sprawdza czy BC (16 bitowy licznik  B-starszy bajt,  L-mlodszy) jest rowny zero, jesli tak to PC zwieksza o dwa (rozkaz 2bajtowy) i koniec, jesli nie to przesyla jeden bajt z adresu wskazywanego przez HL (H starszy, L mlodszy) do komorki wskazanej przez rejestr DE, zwieksza HL i DE o jeden, zmniejsza BC o jeden, PC zmniejsza o dwa i koniec. w tym miejscu BC = 0. jeden przebieg petli LDIR to 21 cykli, 16 jesli BC=0.

pomyslalem ze mozna pominac ta cala zabawe z kazdorazowym ustawieniem pc, tak zeby emulator musial wielokrotnie dekodowac ten rozkaz i wyszlo mi cos takiego:

_ed_b0          equ *      ; LDIR

                ldx z80_c
                beq _ed_b02
                
_ed_b05         ldy #0
_ed_b03         lda (z80_hl),y
                sta (z80_de),y
                iny
                dex
                bne _ed_b03

                stx z80_c
                sty temp_z
                bne _ed_b01
                dec temp_z
                
_ed_b01         clc
                lda z80_l
                adc temp_z
                sta z80_l
                lda z80_h
                adc #0
                sta z80_h
                
                clc
                lda z80_e
                adc temp_z
                sta z80_e
                lda z80_d
                adc #0
                sta z80_d

_ed_b02         lda z80_b
                beq _ed_b04    ; koniec
                dec z80_b
                jmp _ed_b05    ; kopiuj

_ed_b04         equ *

zdaje sobie sprawe ze kod moze byc bledny i/lub wolny, gdyby tak ktos rzucil okiem i moze pomogl zoptymalizowac

7,210

(8 odpowiedzi, napisanych Programowanie - 8 bit)

jellonek napisał/a:

xxl: twoj sposob ogranicza szerokosc mapy do 255 pozycji - pytanie czy to wystarczy pytajacemu?

szerokosc mapy mogla by miec max dlugosc lini antica czyli chyba 4 kb (4096?)

7,211

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

> Co do SID-a to już gotowy praktycznie leży ale w związku z narodzinami mojego syna nie mam za bardzo czasu w domu aby dokończyć soft dla MCU sterującego SIDem.

! ! ! ! :-) nareszcie :-)

7,212

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

z takimi mozliwosciami.... nakierujcie goscia!

moze sida podlacz do atari ?

7,213

(273 odpowiedzi, napisanych Programowanie - 8 bit)

tez tak mysle, halt bedzie dzialal jak nop.

pc ustaw na $62bd.

--- pomyslalem ze trzeba to dodac:
nie patrz na pamiec po zaladowaniu bo emulce juz zdejmuja ze stosu wartosc pc (obejrzyj jak wyglada stos - to ta wartosc powyzej), najlepiej pobrac z pliku sp obliczyc sobie ofset (startujesz od $4000 + naglowek) i pobrac pc. no albo recznie zerknac na ten nieszczesny stos. po zaladowaniu korygujesz sp i jazda.


----
> tam jest opcja zmiany zegara z80 i na 7 MHz chodzi dwa razy szybciej, a na 14,25,50 i 100 chodzi tak samo.

ja mam emuzwin i jak puszcze na 150%,200%....800% to za kazdym razem widac wyrazna zmiane szybkosci dzialania. sprawdzalem czy nie mam gdzies w prefsach ignorowanie halta ale nie zauwazylem ... ?

7,214

(273 odpowiedzi, napisanych Programowanie - 8 bit)

zrobilem tak, wprowadzilem zmiany, ktore Probe zauwazyl, zmienilem dzialanie rozkazu HALT (teraz czeka na koniec ramki) - jak zauwazyl laoo, obejota wrzucielm tu:

http://atari.pl/circle.obx

zegar z80 ustawiony na 3.5mhz/10

w tym konkretnym przypadku widze ze emulec idzie 10% nie mowie ze w kazdym przypadku tak bedzie, np. gdy zrobilo by sie petle, ktora zawiera akurat paskudne w emulacji dla 6502 rozkazy z80 to wygladalo by to bardzo kiepsko, jednak w tym przypadku nie wydaje mi sie zeby bylo bardzo zle.

--
chociaz moim zdaniem halt powinien dzialac jak nop, i tak ataryna jest wolniejsza wiec synchronizowanie sie do wyswietlania jest nadgorliwoscia w tym przypadku. w nastepnych testach wydaje mi sie ze powinienem to zmienic.

7,215

(273 odpowiedzi, napisanych Programowanie - 8 bit)

ziew. jak groch o sciane. nie oftopikuj. popatrz na tyt. watku :-)

a to interko ci dziala? - i to mowie bez zlosliwosci, moglbys pokazac?

7,216

(273 odpowiedzi, napisanych Programowanie - 8 bit)

ok. masz racje to byla pusta deklaracja. nie bedziesz pierwszy

7,217

(273 odpowiedzi, napisanych Programowanie - 8 bit)

mame tez jest adapterem? moze odpalic tylko wybrane tytuly ;-)

interko jest katergorii 512 ale rozwala tablice itp. do 32kb pamieci od adresu $4000 do $bfff

draco, spokojnie, jak boli cie ze jakis cienias w 2 tygodnie napisal emulca to chce cie uspokoic,
to ty bedziesz tym pierwszyj jedynym ktory jako world first uruchomi program z zx spectrum na atari.

7,218

(273 odpowiedzi, napisanych Programowanie - 8 bit)

o co ci chodzi draco? kompleksy masz jakies czy co? wyobraz sobie firme, ktora zaprojektowala autko, ktore w zalozeniach ma byc wystawiane na wyscigi, i za cholere nim nie wyjedziesz nawet droge bo mozesz miec klopoty z rejestracja np ;-) jest wystawa, podchodzi draco i mowi, eeee a da sie tym orac w polu? i tak jest w tym przypadku, emulec ma byc szybki ale nie odpali wszystkiego, co wiecej kto wie, moze nawet niewiele co odpali :D ale jak juz odpali to... widziales zreszta. pokaz mi na innej 8bit platoformie emulacje innego kompa z taka predkoscia? no chyba widzialem emula z81 na zx i byl szybszy.

narzekasz i narzekasz

7,219

(273 odpowiedzi, napisanych Programowanie - 8 bit)

> Wydaje mi się, że draco pokazywał skriny z działającym Basic na 6502.

przeciez nie mowie ze draco nie pisze emulca

> Nie mówię, że nie dostanę takiego wyniku, po prostu wątpię, czy ta metoda pomiaru jest prawidłowa

zaproponuj inna gdzie naocznie mozna sprawdzic szybkosc. ja juz wczesniej proponowalem metode z paskiem na ekranie ;-) odpalamy jakas petle, ktorej wykonanie zmiesci sie w 1 ramce i sprawdzamy, ale musialbys zbyt wiele zmieniac w kodzie zeby to dzialalo? jesli dobrze zrozumialem twoja wtedy wypowiedz. (ale pewnie zle, za 3 tygodnie moze sie pokapuje)

moj heroiczy jak to nazwales opor przed odpaleniem basica oznacza tyle co nie zakladalem i nie przewidywalem wpgole odpalania zx basica na 6502 tylko odpalenie niektorych gierek ewentualnie demek z zx. co innego na 65816

7,220

(273 odpowiedzi, napisanych Programowanie - 8 bit)

> Ja bym wolał wersje binarną, na której działa ZX BASIC.

zawsze mozesz napisac swojego emulca. a na zx basic poczekaj jak dosnae 65816

> Tak w ogóle, jeśli procedura dekodująca ma 25 cykli (to co powyżej plus inkrementacja PC), to znaczy, że możesz nią dekodować max. 70937 rozkazów na sekundę, a to nawet przy wyłączonym Anticu jest 8% szybkości Spectruma.

nie zakladam ze twoje obliczenia sa dobre lub zle ;-) powiem tylko ze magia dziala, zrob tak: uruchom to na zx i na atari, daj zx 11% mocy, odprez sie i poogladaj. acha w warchiwum jest wersja 10 procentowa.

7,221

(15 odpowiedzi, napisanych Zloty)

a mozna wdepnac na godzinke, dwie, dobe, miesiac ?

7,222

(273 odpowiedzi, napisanych Programowanie - 8 bit)

zastanawiam sie nad puszczeniem zrodel, pewnie jeszcze sporo mozna przyspieszyc :)

7,223

(273 odpowiedzi, napisanych Programowanie - 8 bit)

PROBE Ty to masz leb jak sklep. wprowadzilem zmiany jakie podales.

taka niewielka zmiana jak by sie wydawalo a daje ogromnego kopa - 11%

trafiles w dziesiatke.


dl jest tak napisany zeby emulowal pamiec obrazu zx spectrum (tak dziwacznie oni tam maja)

7,224

(273 odpowiedzi, napisanych Programowanie - 8 bit)

zero optymalizacji, zreszta kod sie sam modyfikuje (przynajmniej w pierwszej czesci).

32kb alokuje to demko. czy wszystko tak bedzie chodzic? nie wszystko wogole bedzie chodzic.

7,225

(273 odpowiedzi, napisanych Programowanie - 8 bit)

ok. w archiwum jest .sna dla trumny i .obx dla atari

http://atari.pl/circle2.rar

moze byc?