7,176

(273 odpowiedzi, napisanych Programowanie - 8 bit)

kurde... pamiec znakow atari ulozona jest tak, ze bajty lezace kolo siebie na ekranie leza pod soba (po 8)... to moze dac kopa ale dla spritow pod warunkiem ze znaki ulozone sa od 0-40 obok siebie ale trumna ma pamiec ekranu tak ulozona ze bajty lezace kolo siebie na ekranie tez leza kolo siebie (po 32) pozniej skok o 8 pozycji i kolejnr 32 bajty... tak mniej wiecej.
nie mam pojecia jakby to zrobic na znakach???
poza tym dl atari idealnie symuluje bitmape spektruma...

7,177

(273 odpowiedzi, napisanych Programowanie - 8 bit)

tak jak mowilem, plik wykonywalny bedzie juz wkrotce dostepny. jest jescze nieprzetestowany kawalek dc. inna gra juz chodzic calkiem calkiem a kolejna 'prawie' dziala. chcialbym kogos namowic na zrobienie filereqestera, tak, zeby nie trzeba bylo puszczec 3 wykonywalnych plikow tylko jeden a gry z trumny sami sobie sciagniecie ;-) a jak mi sie nie uda to chyba zaczne przyspieszac dc przepisujac go kawalkami na 6502

7,178

(273 odpowiedzi, napisanych Programowanie - 8 bit)

tak, ukryte na ile % emulec szedl zeby nie draznic ludzi...

> 1. całkowicie olałbym atrybuty. Być może w tej konkretnej grze mają one znaczenie, ale w większości gier usunięcie atrybutów nic nie zmienia

mozna ich nie wyswietlac ale obslugiwac trzeba, wlasnie probuje uruchomic jedna gierce i widze, ze kolizje sa sprawdzne na atrybutach...

7,179

(273 odpowiedzi, napisanych Programowanie - 8 bit)

filmik pokazuje ladowanie .sna i jak dziala emulator. milego ogladania.

http://atari.pl/emulator.rar

7,180

(273 odpowiedzi, napisanych Programowanie - 8 bit)

e tam, bit 6 portb byl niewykorzystany mozna rozszerzac, jesli malo to zawsze mozna bylo jakis rejestr zrobic w przestrzeni pia lub gdziekolwiek indziej mialbyc ile chcesz 16k stron i nie tracilbys moim zdaniem WAZNEJ cechy atari - antic i 6502 w innych bankach a te same adresy zreszta tu to bylo opisane: http://atariarea.krap.pl/forum/viewtopic.php?id=4822 - nikt nie jest przeciwko rozszerzeniom ale nie takim kosztem - to byla funkcjonalnosc osobliwa wsrod 8bitowcow... szkoda ze atarowcy to olali.

7,181

(273 odpowiedzi, napisanych Programowanie - 8 bit)

takie sa moje przemyslenia ale skoro Draco cos tam kombinuje z rozszerzeniami pamieci wiec pewnie wymyslil inny sposob obejscia tego problemu

7,182

(273 odpowiedzi, napisanych Programowanie - 8 bit)

zerknalem na HoH teraz i grafika nie jest zorganizowana jak na zx, wyglada mi na normalna gr.8 basica. popatrzylem tez (raczej szybki rzut oka) na kod, jak na mulacje (w moim rozumieniu) nie widze za duzo jmp/jsr/rts ... nie wyglada mi to na emulacje. ale oczywiscie moge sie mylic.

7,183

(273 odpowiedzi, napisanych Programowanie - 8 bit)

1. gdy bedzie dopalka Pasia to bedzie inna bajka ze tylko powiem: 64kb ciaglej pamieci
2. knight lore to tylko z ciaglym ramem (temat wraca jak bumerang) dlaczego? stronicujac pamiec jak proponowal Draco trzeba liczyc sie z tym, ze predkosc spadnie drastycznie na czas wyswietlania chyba ze mamy rozszerzenie pamieci zgodne w 100% z atari 130xe :-) lub robimy translacje adresowa ale to trwaaa i zajmie pamiec powyzej bloku 16kb. dlatego tym wiekszy szacun dla Draco dla mnie bylo by to porwanie sie z motyka na slonce. powtorze jeszcze raz: z ramem liniowym bedzie mozliwosc uruchomienia prawie wszystkiego z zx spectrum a dzieki 65816 byc moze bedzie to nawet w miare szybkie
3. projekt juz wkrotce bedzie dostepny dla chetnych, tak, ze Ty, TY i Ty rowniez bedziesz mogl poprawic dzialanie emulatora. ogolnodostepna bedzie tylko wersja przekompilowana. wersja z monitorem i praca krokowa tylko dla testerow - tak, mozesz byc testerem. a jak to rozwiaze? nie wiem. pojde spac a rano bede mial nadzieje ze problem zniknie ;)
4. z planami i ocena przydatnosci proponuje poczekac do publicznej wersji

7,184

(273 odpowiedzi, napisanych Programowanie - 8 bit)

tak to wyglada w tym momencie, blad polega na tym, ze niemozna zestrzelic drugiego motocyklisty... nie wiem dlaczego (nigdy nie jest w zasiegu) obecnie siedze z debuggerem zx i atari i klikam po jednym rozkazie sprawdzajac w ktorym momencie rejestry lub pamiec beda sie roznic.. no ale to ... trwa :( zastanawiam sie czy jest sens publikowac ta gierke z takim zolwim tempem czy moze troszke ja podrasowac... dli, pm, przyspieszyc przepisujac conieco na 6502 ???


http://atari.pl/deathchase.jpg

7,185

(16 odpowiedzi, napisanych Bałagan)

a 130xe przypadkiem nie ma rozdzialu na pamiec dla antica i 6502 tak ze masz podwojny bufor bez grzebania ?

bardziej interesujace by byla podmiana pierwszego 16k pamieci


---
albo totalny odlot: bankowane strony pamieci :-) np. $10 stron zerowych :-) 4 stosy ;-) hehe


tyle, ze z drugiej strony... ja osobiscie nie widze juz sensu w rozszerzeniach ktore nie sa w 100% kompatybilne z a130, szkoda, ze atarowcy nie doceniaja mozliwosci pracy antica i 6502 w tych samych adresach a roznych bankach... wkrotce kazdy bedzie mogl miec liniowa pamiec (oby) wiec po co dowalac 1-4 mb ramu bankowanego :p

7,186

(273 odpowiedzi, napisanych Programowanie - 8 bit)

przepisalem emulca tak, zeby zajmowal jak najmniejmiejsca - teraz miesci sie w 4kb - dziala wolniej ale co tam :-) laduje .sna (nie mam loadera - dlatego wczytanie jakiegokolwiek zrzutu to wcisniecie kompilacji w madsie (ins).

od ostatniej animacji dopisalem troche rozkazow i teraz dzialaja liczniki, skrin tytulowy, start gry, game over... praktycznie jest wszystko :-) - no jedna rzecz szfankuje (wkurzajacy bug) i dlatego jeszcze nie puszczam w obieg...
acha, klawiatura jest mapowana pod dzojstik (na potrzeby tej gry wystarczy), przejrzalem troszke kodu i na 101% mozna podmieniac procedurki tak jak to w watku niejednokrotnie bylo mowione.

sprawdzilem tez tego demosa co na forever8 jest gdziestam w tekstach pisanych przez ludzi, potrzeba bylo dopisac tylko relokator stosu :) i poszlo :-)) no dobra, po chwili sie zawiesil heh.

7,187

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

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

7,188

(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,189

(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,190

(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,191

(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,192

(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,193

(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,194

(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,195

(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,196

(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,197

(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,198

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

z takimi mozliwosciami.... nakierujcie goscia!

moze sida podlacz do atari ?

7,199

(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,200

(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.