2,751

(273 odpowiedzi, napisanych Programowanie - 8 bit)

laoo: grupy $x2 w zecie to chyba nie ma :P Ale jeśli chodzi nie o Z80, a o Spectrum, to RST 38H powinien się nadać, jest to legalny rozkaz, ale przypuszczalnie nieużywany (przynajmniej wprost).

2,752

(273 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:

oj bardzo czesto

To zrób i pochwal się, ile ci to dało :-)

xxl napisał/a:

heh no nie przesadzaj, ile takich programow znajdziesz?

Wystarczy jeden.

a co do zajetosci pamieci - nie ma potrzeby implementowania WSZYSTKICH rozkazow, po dekompilacji i wydzieleniu kodu z80 sprawdzamy z czego mozna zrezygnowac

Jak już bystro zauważył dely, ty nie mówisz o emulatorze (czyli offtopikujesz w tej chwili :P)

2,753

(273 odpowiedzi, napisanych Programowanie - 8 bit)

laoo/ng napisał/a:

Musimy tylko dowiedzieć się, które wolne miejsce na pewno są wolne, a nie zajęte przez jakieś używane nielegale.

Z tego, co mi wiadomo, żadne nie są wolne: "puste" miejsca w tabeli oznaczają rozkazy, które po dodaniu prefiksu działają tak samo, jak odpowiedniki bez prefiksu. Dokumentacja, którą czytałem sugeruje, że bywa to używane do utrudnienia analizy kodu (bo większość disasemblerów się na tym ponoć wykłada).

Jest jeszcze jeden problem, przynajmniej jeśli idzie o wersję dla 6502 - miejsce w pamięci. Według moich obliczeń taki sobie prosty emulator powinien zająć całą pamięć 130XE (odjąć miejsce na DOS). Rozszerzenia ponad 128k niestety niewiele tu dadzą.

2,754

(273 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:

daleko szukac... w romie spectrum tez tak jest ;-)

Ja nie zauważyłem, żeby na ogólnym tle kodu znajdującego się w ROM-ie Spectrum takie sekwencje występowały jakoś szczególnie często. Poza tym nawet jeśli, i nawet jeśli są związane z obsługą pamięci ekranu, to i tak niewiele z tego, bo akurat procedury ekranowe nie stanowią większości wykonywanego kodu. Popatrz sobie, ile czasu po wydaniu komendy CIRCLE Spectrum "myśli", a ile czasu rysuje...

2,755

(273 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:

1.zaladuj jakis rejestr do akumulatora
2.wykonaj jakas operacje logiczna/arytmetyczna
3.zapisz wynik w poprzednim rejestrze

To może - acz oczywiście, nie musi - zależeć od stylu programowania jednej osoby. Można wsadzić w emulator rozpoznawanie określonych sekwencji, to jest łatwe, problem w tym, żeby wiedzieć, które z nich są typowe dla programowania w Z80, a które przyspieszają tylko jeden program, albo zgoła jeden jego kawałek (natomiast pozostałe zwalniają).

2,756

(273 odpowiedzi, napisanych Programowanie - 8 bit)

Sikor napisał/a:

Ciekawe, co tam u Draco ;)

A dziękuję, wszyscy zdrowi.

2,757

(273 odpowiedzi, napisanych Programowanie - 8 bit)

Kiedy będzie gotowe, będzie dostępne :)

2,758

(273 odpowiedzi, napisanych Programowanie - 8 bit)

tebe, naturalnie - ale chwilowo nie mam sprzętu, więc ćwiczebnie powstaje wersja na 6502 :)

2,759

(273 odpowiedzi, napisanych Programowanie - 8 bit)

Ok, mogę się już bawić BASIC-em. Działa to na tyle znośnie, że parolinijkowe programy można wpisywać i uruchamiać bez większej przykrości.

http://drac030.krap.pl/zxproggie.jpg

http://drac030.krap.pl/zxpoglad.jpg

2,760

(16 odpowiedzi, napisanych Software, Gry - 16/32bit)

saulot napisał/a:

Jeżeli chodzi o dobry materiał referencyjny to rządzi Atari Compendium

Tylko że w Atari Compendium jest kupa błędów i trzeba na to uważać. Wersja HTML miejscami się w zasadzie nie nadaje do użytku. Wersja HYP, o której wspomniałeś, jest trochę pod tym względem poprawiona.

2,761

(20 odpowiedzi, napisanych Sprzęt - 16/32bit)

Ee, czemu. Po nullmodemie też chodzi.

2,762

(273 odpowiedzi, napisanych Programowanie - 8 bit)

tebe napisał/a:

chyba że Draco już ma dopałke Pasia

Nie ma. Komputer na zdjęciu to najzwyklejsze pod słońcem 130XE.

2,763

(273 odpowiedzi, napisanych Programowanie - 8 bit)

Pecus napisał/a:

No wiesz.... trzymac przez tydzien wlaczone Atari, zeby sobie jedno demko zobaczyc :) ... przesada.

Tydzień? Takie demko musiałoby w realu trwać z 10 godzin :P Zważywszy, ze rozsądne demko pewnie nie jest dłuższe niż 10 minut, Atari trzeba byłoby mieć włączone nie przez tydzień, ale jedynie przez jakieś 3 godziny (trzy demka po 10 minut = droga koleją z Warszawy do Trenczyna) :)

2,764

(273 odpowiedzi, napisanych Programowanie - 8 bit)

dely: na razie do basica nie da się przejść, bo nie zrobiłem jeszcze obsługi klawiatury :)

adam: wieeedziałem, że ktoś wyleci z takim pomysłem :P

2,765

(273 odpowiedzi, napisanych Programowanie - 8 bit)

A u mnie tak:

http://drac030.krap.pl/zxnapis-small2.jpg

Dla chętnych - i tych, którzy nie wiedzą, co tam jest napisane - wyraźniejsza wersja:

http://drac030.krap.pl/zxnapis.jpg

Dojście, a raczej domęczenie się, do tego miejsca po zastartowaniu OS-u Sinclaira od adresu $0000 zajmuje emulatorowi 1819 ramek (circa 36,5 sek.).

2,766

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

Ja jednak mam nadzieję, że akcelerator będzie dobrze współpracował, w końcu po coś ta przelotka i miejsce na dodatkowe sygnały były planowane :)

pin: co do tych czterech kartów, obawiam się, że żeby to działało razem, BASIC XE trzeba wsadzić przelotowo w SDX - czyli z punktu widzenia ekspandera to jednak będą trzy kartridże.

2,767

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

Patrz też strona dyskusji: http://atariki.krap.pl/index.php/Dyskusja:Vicky <-- jest tam pewna informacja, która wypadła z hasła ze względów formalnych (jest sformułowana w pierwszej osobie). Ktoś znający się na tej grze (np. ty) mógłby dokonać jakiejś ostatecznej redakcji tego hasła, tylko przestrzegając przy tym reguł edycyjnych Atariki, bo inaczej będę strzelał.

2,768

(273 odpowiedzi, napisanych Programowanie - 8 bit)

Emulacja 8080 byłaby szybsza tylko w tym sensie, że z powodu dużo mniejszej liczby rozkazów emulator mógłby powstać szybciej ;) Poza tym nie ma w zasadzie żadnej róznicy, oprócz drobnej w zachowaniu rejestru znaczników.

2,769

(273 odpowiedzi, napisanych Programowanie - 8 bit)

laoo/ng napisał/a:

Proponuję zatem powołać Komisję Ślędczą, której zadaniem będzie (ponowne)odkrycie wszystkich wymagać do uruchomienia CP/M

W en.wiki (http://en.wikipedia.org/wiki/CP/M) jest napisane, że to jest:

a) terminal
b) Intel 8080
c) 16k RAM-u
d) stacja dysków

Co do tych "16k", tutaj: http://www.dcast.vbox.co.uk/cpm.html napisali że ma to jednak być co najmniej 20k ze wskazaniem na nie mniej niż 48k.

2,770

(273 odpowiedzi, napisanych Programowanie - 8 bit)

Nigdy się spectrumem za bardzo nie interesowałem, więc mogę być w błędzie, ale wydaje mi się, że do uruchomienia CP/M potrzebna była stacja FDD 3000, i to ona robiła za komputer, a ZX Spectrum za terminal. Inaczej się CP/M-u uruchomić nie dało, ale nie wiem czemu - może CP/M wymaga np. żeby pierwsze 16k pamięci było RAM-em? Albo chodzi o brak odpowiedniego BIOS-u.

Jeśli to drugie, to w zasadzie żaden problem.

Tu http://pl.wikipedia.org/wiki/Elwro_800_Junior jest napisane "jednym z trybów pracy jest programowo zgodny z Sinclair ZX Spectrum".

2,771

(273 odpowiedzi, napisanych Programowanie - 8 bit)

pirx napisał/a:

Trzeba też odjąć sporo czasu na ekran (organizacja taka, jak w ZX oznacza częste przeładowanie adresu ekranu w DL).

Ale z drugiej strony ekran jest wąski (256 pikseli), więc per saldo chyba się opłaca ...

2. będzie można spóbować emulacji CP/M

Czy CP/M może działać na Spectrum? Coś kojarzę, że nie.

PS. Policzyłem dokładnie - Z80 ma 1268 rozkazów.

2,772

(273 odpowiedzi, napisanych Programowanie - 8 bit)

Ja swoje wyniki jak dotąd już przedstawiłem (patrz post #48). Mówię ci po prostu - a niezbyt dociera jak widzę - że nie zamierzam robić głębokich zmian w istniejącym kodzie tylko po to, żeby uzyskać bezwartościowy dla mnie rezultat w postaci snapszota z emulatora Atari800.

Szerszemu forum zaś zamierzam przedstawić na koniec nie "wyniki", tylko gotowy program, o ile ocenię, że robi coś ciekawego i jest wart przedstawiania.

A co do "zaimplementuj, zdebuguj, pogadamy", myślę, że fałszywie mnie zrozumiałeś. Znaczyło to tyle co "nie teoretyzuj" :P

2,773

(273 odpowiedzi, napisanych Programowanie - 8 bit)

Słuchaj, robisz sie nachalny. Jak ci mówię, że nie zamierzam tego robić, i podaję powody, to ci powinno wystarczyć dwa posty temu. Mogę ci jeszcze delikatnie zasugerować, że nie masz pojęcia jak wygląda u mnie start emulacji i cały kod "okołoemulatorowy" (z monitorem Z80 na czele), więc nie możesz wyrokować lepiej ode mnie, czy to dużo zmian, czy mało. :P I może na razie na tym poprzestańmy, chyba, ze chcesz, żeby się atmosfera popsuła :P

2,774

(273 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:

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

wytlumaczylem wczesniej dlaczego procka powinna zmiescic sie w ramce

Być może każdy by mógł, i być może "powinna", ale mnie nie interesuje przedstawienie wyników "każdemu", tylko mnie samemu. A do tego mam własną metodę pomiaru, która mi daje informacje porównywalne z wynikami uzyskiwanymi od niedzieli - i nie zamierzam jej zmieniać, zwłaszcza że, jak napisałem wyraźnie wyżej, wymagałoby to sporych zmian w dotychczas istniejącym kodzie.

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

A ty myślisz, że co ja od niedzieli robię? :P Co do B, faktycznie, rozkaz DJNZ go używa, nawet tego do tej pory nie wiedziałem.

2,775

(273 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:

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

Sprawdzenie tego w zasadzie nic nie kosztuje, to groszowa oszczędność.

- umiejscowienie pamieci emulowanego proca w liniowym ramie (65816 sie klania)

No, wiadomo, że na 65816, przy liniowym RAM-ie i z wykorzystaniem nowych trybów adresowania, to jest zupenie inna bajka: np. dekodowanie rozkazu się na dzień dobry robi 4 cykle szybsze.

- napotkanie rozkazu nieobslugiwanego powoduje opuszczenie emulatora

To faktycznie musi bardzo przyspieszać emulację :)

jeszcze nie wiem jak zaemulowac rejestr stanu z80...

A to jeszcze wiele przed tobą :)

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

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.

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

Ja - jak wiesz zresztą - testuję na czymś takim (przytaczam z pamięci):

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

Ta pętla wykonuje się 49152 razy zerując pamięć od $FFFF do $4000. Atarynce wykonanie tego zabiera 496 ramek. Rozkazy ustawiają wszystkie oficjalne flagi Z80, nieoficjalnych przeważnie nie.