ZX Spectrum > WSPÓŁCZESNE KLONY
V6 prawie jak Amiga ;)
matofesi:
Jakiś czas temu gdzieś na G+ trafiłem na linka to postu Crash course to Amiga assembly programming. Choć nigdy nie robiłem nic poważnego na Amidze uznałem, że tekst może być wart przeczytania. Chyba miałem rację - we w miarę przystępny sposób (choć bez nadmiernych szczegółów) wprowadza w programowanie w assemblerze na Amidze a całość robi na przykładzie prostego demo-efektu - falującego logo.
Po przeczytaniu tekstu i ściągnięciu kodu źródłowego po raz kolejny utwierdziłem się, że Phil projektując OSCA do V6 wzorował się przynajmniej w części na Amidze - kolejne kawałki Amigowego kodu zaczęły mi się przekładać na odpowiednie rejestry i mechanizmy dostępne w OSCA. A jak już zaczęły uznałem, że sprawdzę, czy jestem w stanie przeportować ten efekt na Z80 z zachowaniem struktury tego, co siedzi w Amigowym oryginale i przy użyciu oryginalnych niemodyfikowanych danych.
Całość zajęła mi jakieś trzy dni - w tym większość czasu to przypomnienie sobie jak OSCA pracuje i jak się z tym gada ;)
W załączniku oryginalny kod dla Amigi wraz z wersją skompilowaną oraz moja wersja na V6 - również źródło i wersja skompilowana.
Nie wiem jak ten program wygląda na fizycznej Amidze bo odpalałem go tylko pod emulatorem, ale to co widzę tam i na V6 wygląda moim zdaniem identycznie ;)
Jakby ktoś sobie życzył to mogę omówić kod bliżej choć chyba nie specjalnie jest co omawiać ponad komentarze, które są zawarte w pliku.
Sir David:
Na pewno sprawdzę na V6. I chętnie też coś spróbuję na nim napisać. Te includy na górze są jakieś standardowe i gdzieś dostępne? Czy wystarczający opis "jak OSCA pracuje i jak się z tym gada" jest na stronie V6Z80P wiki?
matofesi:
Opis OSCA, FLOSa itp. masz na wiki i to jest w zasadzie wszystko co ci jest potrzebne. Include'y poza linecop_macros.asm i my_macros.asm są standardowe. Ten pierwszy jest w załączniku, ten drugi w wypadku tego przykładu nawet nie jest używany - włączyłem go z rozpędu ;) A wsadzam sobie do niego jakieś drobiazgi, żeby nie powtarzać jak potrzebuję.
Cała reszta jest w archiwum ("Complete Archive") na wiki.
OSCA programuje się zupełnie nie jak Spectrum czy Sam głównie dlatego, że procesor jest ~4 razy szybszy niż w Spectrum a ekran w standardowym 320x200 to 64 kilo więc ciężko byłoby to obrobić samym procem. Dlatego bez użycia dostępnego hardware'u efekt będzie pewnie taki jak moja jedyna próba napisania czegoś na Amigę - prosty scroller po sinusie z fontem na 6 pikseli, który pisany w zasadzie tak jak na Spectrum zjadał ponad połowę Amigowej ramki ;)
Gryzor:
Fajnie, ze jeszcze ktos pamieta o V6 :-) Nawet Phil porzucil swoje dziecko i zajal sie teraz ZXem i roznymi dodatkami.
Dla mnie od poczatku V6 to byla Amiga na Z80.
Nie odpalalem nigdy V6 na monitorze LCD, wiec bedzie okazja.
matofesi:
Ja pamiętam. To jedyny ~retro sprzęt jakiego w ogóle używam a kupiłem przecież nie po to, żeby na nim odpalać soft ze Spectrum (choć był to miły dodatek) tylko właśnie po to, żeby sobie pokodować na wypasionym sprzęcie z dobrze znanym procesorem :)
A ten monitor co podłączasz to jest VGA czy normalne RGB na 50Hz? Bo szczerze mówiąc nie wiem jak będzie wyglądała synchronizacja i w ogóle ekran w trybie VGA albo w 60Hz... Tutaj to prosty efekt więc raczej nie powinno być problemu, ale przy bardziej zaawansowanych na 60Hz raster jest krótszy i efekty potrafią się nie wyrabiać. Widać to ładnie w demku Wireframe - w 50Hz wszystkie bryły chodzą płynnie, w 60Hz te ostatnie - największe - się przycinają.
Nawigacja
[#] Następna strona
Idź do wersji pełnej