To prawda dump niedobry jest. Tylko jakie wziąćformaty? Yerzu polecał na ZX formaty .STC i .PT3.
Edit: "Formaty" typu .AY, .SID czy .SAP nie nadają się do niczego pożytecznego. Emulacja/wirtualizacja motoroli na 6502 też jakoś mi się nie uśmiecha.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Outline 2025 - invitro na Atari ST Paradox i Havoc/Lineout wydali invitro na Outline 2025 dla Atari STf z 1 MB RAM.
Nowe postacie w Street Fighter 2 Vega dodaje kolejne postacie do portu SF2 na Atari 8-bit. Zobacz nowy film z rozgrywką.
ATasm v1.30 ATasm v1.30 to assembler dla procesora 6502 działający z poziomu wiersza poleceń, zgodny z oryginalnym Mac/65 od OSS.
ugBASIC v1.17.2 Wszechstronny język programowania BASIC oraz cross-kompilator pozwalający na tworzenie programów na różne platformy 8-bitowe
Zapraszamy do artykułów na atari.area! Szukasz różnorodnych materiałów na temat Atari? Koniecznie odwiedź dział artykułów.
atari.area forum » Posty przez mono
To prawda dump niedobry jest. Tylko jakie wziąćformaty? Yerzu polecał na ZX formaty .STC i .PT3.
Edit: "Formaty" typu .AY, .SID czy .SAP nie nadają się do niczego pożytecznego. Emulacja/wirtualizacja motoroli na 6502 też jakoś mi się nie uśmiecha.
A tam wielkie słowa.
.PSG to jest zwykły dump rejestrów AY (stąd wielki rozmiar pliku). Format prościutki (PSGFormat.rar): http://bulba.untergrund.net/progr_e.htm
Dokumentacja jest trochę nieścisła, ponieważ nagłówek naprawdę zajmuje 16 bajtów, lecz 4 pierwsze to identyfikator formatu i wersja, a reszta ztcw jest niewykorzystana.
A program odtwarza pliki w formacie PSG1 z prędkością 1 na ramkę (50 fps).
Plik jest ładowany do RAM, potem do XRAM. Evie testowane jest pod adresem bazowym $D2C0 - można podać inny adres przełącznikiem /A addr (jeśli kiedykolwiek w przyszłości zajdzie taka potrzeba).
/Q 1.77 lub /Q 2.00 włącza odpowiedni zegar bazowy, /2 dzieli go jeszcze na pół.
Testowo zrobiona jest jeszcze panorama /P pan podawana w tradycyjny spektrumowski sposób (ABC, CAB, itd.) pozwalająca na przyporządkowanie kanałów AY do kanałów stereo.
Muzyka nie jest zapętlana - odtwarzanie kończy się po odegraniu kompletnego pliku lub po osiągnięciu końca dostępnej pamięci (jeśli cały plik nie zmieścił się w pamięci dostajemy odpowiednią informację i player przystępuje do odtwarzania).
Warto zauważyć, że sterownik RAMDISK.SYS zabiera XRAM więc można udostępnić więcej pamięci rekonfigurując go w CONFIG.SYS. Informacja o ilości wolnej pamięci dla programów dostępna jest zleceniem MEM /X.
Plik .PSG można otrzymać odpalając dowolną muzykę np. pod emulatorem fuse http://fuse-emulator.sourceforge.net/. Za pomocą File>AY Logging>Record startujemy nagrywanie .PSG, poprzez File>AY Logging>Stop zatrzymujemy. Taki plik należy potem sobie przenieść dowolnym sposobem na Atari i odtwarzać.
Format .YM również jest dumpem, ale bywa inaczej zorganizowany (co w sumie nie przeszkadza, bo i tak wszystko jest naraz załadowane do pamięci) - .PSG jest strumieniem i można by go było odtwarzać strumieniowo bez wykorzystania pamięci. .YM ma też parę ficzerów typu SIDSound, odtwarzanie n x na ramkę i sample.
Na mojej stronie dostępne są pliki .ARC, .ATR i .ZIP. psgplaye.ext to ostatnia wersja, dostępna jest też wersja wcześniejsza psgplaye-0.1.ext - trzeba sobie zmodyfikować link.
Tam też jest GCR.
dodano implementację AY-3-8910 czy tam YM2149
Ile poziomów głośności ma obwiednia w implementacji? Jeśli 16, to mamy AY, jeśli 32 to YM (tam są tylko dodatkowe poziomy "między") :D
Od strony programisty zarówno AY, jak i YM się niczym nie różni (głośność kanału bez obwiedni jest zawsze 16 stopniowa).
Po głębszym zastanowieniu jednak przyznaję Ci rację - wystarczy analizować czy nie próbujesz ulokować bloku w niedozwolonym miejscu i się zbuntować. W mocy jednak pozostaje argument o ładowaniu xBIOSa przez DOS celem odpalenia programu.
Ależ przejdzie. Wystarczy, że na początku pliku znajdą się rozkazy:
isb $??FF,x ;$FFFF
inc $??FF,x ;$FFFE
dcp $??FF,x ;$FFFD
dcp $??FF ;$FFFC
lax $??FF,y ;$FFFB
lax $??FF ;$FFFA
aso $??FF ;$FFF0
isb $??DD,x ;$DDFF
lax $??FB,y ;$FBFB
Choć to prawie same niepubliczne, to zawsze chętny do oszukania DOSa wyprowadzi go w maliny.
Sam mógłbyś (podejrzewam, że z przewrotną przyjemnością :D) tak zacząć pierwszy blok programu, żeby DOS poszedł się kochać - choćby tym INCem. Stąd właśnie moja propozycja o zdefiniowanie nagłówka. Mniej mi chodzi o to żeby DOS zadziałał poprawnie, ale żeby użytkownik nie musiał restartować komputera przy próbie uruchomienia programu, którego w danym środowisku nie będzie mógł poprawnie odpalić. Mając identyfikator nawet głupi DOS może załadować Twojego xBIOSa i zrobić to, czego żąda od niego user.
Jeśli się nie da, to trudno - zawsze pozostanie rozszerzenie pliku.
No wiesz. Zafundowanie użytkownikowi zwisu komputera nie jest takie fajne, a jak posługujesz się zwykłym nagłówkiem ATARI DOS, to trzeba rozbudowywać loader, żeby przypadkiem się zabezpieczyć np. przed ładowaniem w obszar nie przeznaczony dla usera (co robi np ATARI DOS 2.5). Kiedy masz sygnaturę wtedy wszystko jest jasne i proste - rozpoznajemy i uruchamiamy (jak umiemy), lub nie (jak nie umiemy). Masz tam zresztą swoje metody do zmiany adresów INI/RUN i oidp kiedyś mogły też być inne nagłówki bloków (ale może źle pamiętam). I parę innych fajnych możliwości, których nie dają znane DOSy.
Edit:
nic nie trzeba robic przeciez, ten DOS, jak i inne DOSy, zachowa sie podobnie - rozlozy rece
No owszem owszem, ale niech to zrobi w sposób cywilizowany a nie przez zwis.
Niewiele się różni, zresztą jak słychać komponenty te same! :D XE to był zawsze porządny sprzęt!
F16? Pin! - ukradłeś armii silnik od samolotu? A pomyślałeś o offsecie?
Komu? Odpowiedź jest przecież oczywista - loader w SpartaDOS X :)
*1 - plik nie ma identyfikatora pliku binarnego dzieki temu tylko xB bedzie mogl to zaladowac, dos wyswietli blad.
A może w ogóle zrobiłbyś dla plików xBIOSowych osobny nagłówek identyfikujący. Dzięki temu można by łatwo je identyfikować i ładować, albo i nie.
O ile wiem obecnie zajęte są:
$FFFF (ATARI)
$FFFE (Sparta)
$FFFD (Sparta)
$FFFC (Sparta)
$FFFB (Sparta)
$FFFA (Sparta)
$FFF0 (ACX)
$DDFF (BasicXE)
$FBFB (AlfAssembler)
Może coś w rodzaju $4278 :)?
Edit: Czy DOSy (i user) identyfikują sobie tylko po rozszerzeniu (powiedzmy .XB)?
Hahaahhaha. Jim Power to TYLKO z Amigi daje radę!
Fajne, fajne.
1. Jak zorganizowane są pliki na dyskietce? Czy żeby poprawnie działało xBIOS_GET_FILE_OFFSET/xBIOS_SET_FILE_OFFSET plik powinien być zapisany w kolejnych sektorach czy też może być rozsiany po całym dysku (korzystasz z linków na końcu sektorów czy nie)?
2. Co robi zmiana katalogu bieżącego xBIOS_CHANGE_DIR? I pochodne - jak otwierasz plik? Czy przeszukujesz kolejne wpisy (64 lub 128 pozycji katalogu (jak wiadomo katalog w ATARIDOS zajmuje zawsze 8 kolejnych sektorów) i czytasz kolejne sektory katalogu)?
3. Na czym polega indeksowanie plików? Czy po prostu wyszukujesz odpowiedni plik w katalogu i ja (jako programista) mogę sobie wtedy zachować jego pozycję dzięki czemu mogę w dowolnej chwili czytać dowolny sektor i resztę pliku (i korzystać z xBIOS_SET_FILE_OFFSET)?
4. Jak wygląda zmiana xBIOS_SET_FILE_OFFSET np. z $1000 na $0 - czy potrzebujesz odczytać z katalogu gdzie jest początek pliku i przeliczyć pozycję (lub przelecieć się po sektorach i przeczytać wszystkie linki aż do chwili kiedy znajdziesz odpowiedni sektor pliku)?
Fajny pomysł z tym indeksowaniem - zaciekawiło mnie jak to działa i jakie założenia przy budowie dyskietki z .atr poczyniłeś.
Edit: A uchwyty! Przepraszam - uciekło mi trochę postów w wątku i przypadkiem zobaczyłem. Ale nadal ciekawi mnie zmiana offsetów i zakładana organizacja pliku na dysku.
Jad ujada. Rzadko się zresztą udziela na forumie. Arystokracja.
A gdzie duchowieństwo? Szlachta służy do szlachtowania ;> Atarowska społeczność stanowa.
Bo mieli najładniejsze kibitki :P Słowiańska dusza...
00:05:54:Jest pan na pustyni, idzie po piasku...
00:05:57:To początek testu?
00:05:58:Tak.|Jest pan na pustyni, wszędzie piasek...
00:06:01:nagle spogląda pan w dół...
00:06:02:Na jakiej?
00:06:03:Która to pustynia?
00:06:04:To nie ma żadnego znaczenia.|To tylko hipoteza.
00:06:07:-Ale co ja tam robię?|-Może ma pan wszystkiego dość, może...
00:06:09:chce być pan sam. Kto wie?
00:06:13:Patrzy pan pod nogi i widzi żółwia.
00:06:15:-Zbliża się w pańskim kierunku...|-Żółwia?
00:06:21:-Wie pan co to jest żółw?|-No jasne.
00:06:23:No, widzisz.
00:06:25:Nigdy nie widziałem żółwia.
00:06:29:Ale rozumiem co ma pan na myli.
00:06:30:Schyla się pan i obraca go na grzbiet.
00:06:34:To pan wymylił te pytania,|panie Holden?
00:06:36:Czy może kto je dla pana ułożył?
00:06:38:Żółw leży na grzbiecie,|smaży się na słońcu...
00:06:41:Przebiera nożkami, próbuje obrócić się,|ale nie daje rady.
00:06:44:To niemożliwe bez pańskiej pomocy.|Ale pan mu nie pomaga.
00:06:47:Jak to, nie pomagam mu?
00:06:48:Nie pomaga pan mu.
00:06:50:Dlaczego, Leon?
00:06:59:To są tylko pytania.
Polecamy również wietnamską (chińską?) restauracyjkę nieopodal szkoły na terenie osiedla niedaleko Biedronki tudzież innego przybytku popkultury. Pyszne jedzenie z sosikami którym za każdym razem się raczymy (a Candle to nawet kiedyś zeżarł podwójną porcję i potem trawił jak wąż tego Hindusa, co wracał narąbany do domu). Niestety nie pamiętam jak się nazywało :/
Miłośnikom schabowego polecam knajpkę "U Ludwy" w centrum Głuchołazów. Specjalność zakładu to schabowy z kością, barszczyk z botwinki i groszek z marchewką.
http://atariki.krap.pl/index.php/NTSC_vs_PAL
http://atariki.krap.pl/index.php/Rejestry_POKEY-a
Edit: Mam nadzieję, że masz świadomość iż:
1. Każde przerwanie obsługiwane jest PO ZAKOŃCZENIU bieżącego cyklu rozkazowego (a rozkaz potrafi trwać 2..7 cykli).
2. Zapis do WSYNC BLOKUJE PROCESOR a więc i moment przyjęcia przerwania do 105 cyklu podczas generowania linii.
3. Ponieważ ANTIC jest procesorem nadrzędnym każdy cykl jego dostępu do pamięci zablokuje dostęp do pamięci procesora (albo pracę procesora - nie jestem tego 100% pewny, trzeba by to uściślić).
Jeśli chcesz więc precyzyjnie odpalać przerwania to masz możliwość synchronizowania startu licznika (zapis do WSYNC i do STIMER), no a później trzeba by precyzyjnie kontrolować co robi processor i ANTIC i tak sobie ułożyć program, żeby przerwanie było przyjmowane bez różnych za każdym razem opóźnień związanych z zakończeniem wykonywania rozkazu. A jeśli precyzyjnie nie ma być no to problem z głowy i nie ma co myśleniem zbytnim głowy psować.
Jeśli jest miejsce, to byłoby bardzo fajnie, żeby można było zidentyfikować rozszerzenie. Umożliwiłoby to programom, które robią coś procesorem autokonfigurację (np. odgrywarkom sampli).
Czy istnieje sposób na detekcję obecności akceleratora za pomocą procesora 6502? Może w ROM new device jest jakaś sygnatura pozwalająca go rozpoznać?
1. Obsługę STIMER (sterowanie PWM przez kontrolowanie startu dzielników) i SKCTL (bit 3 - transmisja dwutonowa czyli filtrowanie licznika 2 zawartością licznika 1) polecałbym. To są ficzery, które rzadko (albo i nigdy) są obecnie stosowane, lecz IMHO dają pewne możliwości jeśli idzie o dźwięk i na pewno powstanie kiedyś narzędzie które będzie z tego korzystać.
2. Widzę że obsługa AY/YM przez jeden rejestr adres:dane to standard, ale zalecałbym rozwagę, ponieważ adresowanie 16 rejestrów w taki sposób niestety wydłuży czas działania playera (w podobnym stylu adresuje się kanały w SoundBoard). Umieszczenie wszystkich rejestrów w przestrzeni adresowej (może np. od D2F0?) uprościło by i przyspieszyło dostęp. CPU jest jednak wąskim gardłem - owszem, dźwięk może nie jest specjalnie wymagający, ale jeśli trzeba złożyć wszystko do kupy, to zaczyna brakować cykli w ramce (vide pojawiające się co jakiś czas wątki z pytaniami o najszybszy znany player). Wystarczy zresztą zobaczyć ile zajmuje odtwarzanie RMT, czy TMC 4x na ramkę :/
3. Przerwania - miła rzecz i cieszy :)
Ha! OIDP SID ma wejście na sygnał z zewnątrz - może by mu tam włączyć wyjścia z POKEY-ów? Będzie ten sygnał modulowany przez SID-a?
Świetnie! Czy te POKEYe implementują feature z transmisją dwutonową z SKCTL? Czy implementują przerwania od liczników i czy da się je wykrywać metodą #2 Draka? Czy SID-a można wykryć metodą jak SlightSID-a? a może jest sposób na wykrycie Evie (wtedy wiemy co mamy na pokładzie)?
Pisałbym się również na egzemplarz. Playerów nie obiecam natentychmiast, bo Draco i Candle mi łeb ukręcą.
Edit: Transmisja dwutonowa interesuje mnie jedynie pod kątem brzmienia dźwięków w POKEY-u - sama transmisja mi niepotrzebna.
Świetne party. Trzeba mi było tego jak powietrza. Dzięki Grzybsonu, i wszystki partyzantu. Dozoo przy następnej okazji.
atari.area forum » Posty przez mono
Wygenerowano w 0.097 sekund, wykonano 20 zapytań