Zapomniane hasło?   Poproś o członkostwo
|
||
RastaConverter – nowa wersja z 2024-04-24 00:47 (2) Obudowa kombajnu XCF12 z 2024-04-19 16:43 (26) Time Wizard Deluxe + edytor poziomów z 2024-04-15 17:25 (28) FORTH rozgryziony! z 2024-04-10 22:20 (18) Wyniki i stuff z Grawitacji 2024 z 2024-04-07 16:19 (15) Grawitacja 2024 - zapraszamy! z 2024-04-04 21:39 (2) Zapowiedź konwersji "Rick Dangerous 2" z 2024-04-01 09:12 (30) Bardzo krótka relacja z KWAS #33 z 2024-03-25 21:11 (10) KWAS #33 w Katowicach za moment! z 2024-03-21 13:06 (7) Zbigniew Kasprzycki - współtwórca Polskiego Logo z 2024-03-15 22:25 (9) "Zoltar Cosmic Pirates" w sieci z 2024-03-15 12:21 (6) KWAS #32 z 2024-02-16 00:08 (39) Która kolorystyka okładki lepsza? z 2024-02-11 18:30 (36) Demo gry "Tony: Montezuma's Gold z 2024-02-05 21:09 (54) Wywiad z Mariuszem Jaroszem z 2024-01-31 11:43 (12) Nachodzi "Cosmic Hero 2" z 2024-01-28 06:27 (22) Miniaturowe Atari (FPGA) z 2024-01-26 11:46 (15) Światowa premiera "Cyborg Warriors"! z 2024-01-17 18:38 (40) Grel #2 już dostępny! z 2024-01-11 19:21 (29) Śmierć śmieciom! z 2024-01-06 21:23 (30)
|
nowsze | starsze |
«« nowsze | starsze »» |
0-9 | A | B | C | D |
E | F | G | H | I |
J | K | L | M | N |
O | P | Q | R | S |
T | U | V | W | X |
Y | Z | inne |
Atari ST dla opornych |
Poniżej chcę (w skrócie) przedstawić architekturę/technikalia maszyny Atari ST. Być może ktoś poczuje miętę do tej konstrukcji :). Takie mydło i powidło, wszystkiego po trochu. Trzymał się będę podstawowego modelu - Atari ST (f/m). Nie będzie opisu wynalazków z serii STe, TT, itd... - czyli opisu blittera, kanałów DMA itd... Te elementy są rozszerzeniem podstawowej architektury. Nie będzie też porównań z Amigą (bo i po co). Co najwyżej - będą odniesienia do małego Atari (by łatwiej temat ogarnąć). Nie zamieszczę tutaj również samego tutoriala dla procesora - pełno tego na sieci, i znaleźć to nie problem. Raczej to będzie krótkie i skondensowane przedstawienie architektury oraz kilka fajnych (w moim odczuciu) linków. ST jest dosyć prostą konstrukcją. Oparty jest na procesorze Motorola 68000. Zegar procesora to 8MHz. Będąc maszyną projektowaną w krótkim czasie, składa się z wielu komponentów dostępnych wtedy na rynku - są to m.in. układ dźwiękowy YM-2149 czy kontroler klawiatury 6301. Są jednak również układy scalone zaprojektowane specjalnie dla ST. Są to m.in. Rejestry sprzętowe w zdecydowanej większości są do zapisu i odczytu, zatem nie ma potrzeby robić rejestrów-cieni. Komputerem zarządza system operacyjny TOS. Jest on cały czas dostępny w pamięci. Nie ma pojęcia wyłączenia ROMu (jak na XE). Na ST ograniczenie rozmiaru pamięci to 4MB. Pamięć jest liniowa, nie ma żadnych banków. Im więcej pamięci jest dostępne w systemie, tym wyższe adresy można adresować. Pamięć zawsze zaczyna się od adresu 0. Początek oraz koniec pamięci zajmuje system na różnego rodzaju wektory, flagi, zmienne. Sytuacje awaryjne system sygnalizuje poprzez wyświetlenie bomb na ekranie. Ich ilość informuje o rodzaju wyjątku, jaki właśnie nastąpił [5]. System operacyjny ST jest podzielony na kilka warstw, każda za coś innego odpowiada: Jak już wyżej napisane jest - procesor to Motorola 68000. Zegar to 8MHz. Jest to procesor typu CISC, z wewnętrznym mikrokodem. Jest to procesor dużo bardziej rozbudowany niż 6502 - dostępnych jest więcej operacji, więcej rejestrów, większość rozkazów procesora może działać na różnej wielkości danych (8, 16, 32 bity). Kosztem jest duża liczba cykli na niektóre rozkazy (porównując z 6502). Np. na 6502 tax (transfer danych z akumulatora do rejestru X) zajmuje 2 cykle, na MC68000 move.l d0,d1 (transfer danych z rejestru d0 do d1 - a więc również wewnątrz procesora) zajmuje 4 cykle. Do plusów procesora należy zaliczyć mnogość rejestrów oraz ich uniwersalność (w porównaniu z 6502). Do dyspozycji są 32bitowe: 8 rejestrów danych (d0-d7) oraz 8 adresowych (a0-a7 - z tym, że poniżej jest uwaga dotycząca a7). Uniwersalność polega na tym, że np. operacje arytmetyczne można przeprowadzać na dowolnych dwóch rejestrach danych, adresy danych mogą być w dowolnych rejestrach adresowych, i dowolne rejestry danych mogą ten adres indeksować. Pełna dowolność (ale w zakresie grupy rejestrów: danych lub adresowych). Należy też mieć na uwadze, że operacje 32bitowe są wykonywane wolniej niż operacje 16bitowe. Procesor 68000 może pracować w trybie użytkownika oraz w trybie nadzorcy. W trybie użytkownika rejestry sprzętowe są niedostępne. Nie można również zarządzać przerwaniami. W trybie nadzorcy jest pełna kontrola nad maszyną. Na początkującego kodera czyha kilka pułapek. Na pierwszym miejscu bym wymienił konieczność wyrównania danych do adresów parzystych. Procesor na szynę adresową nie potrafi wystawić najmłodszego bitu(zawsze ma wartość 0), zatem wszystkie dane, kod muszą się zaczynać od adresów parzystych. Wszelki odczyt z nieparzystego adresu spowoduje pojawienie się bomb. Wyjątkiem jest tylko odczyt bajta, można podać adres nieparzysty. Inną niedogodnością jest rejestr adresowy a7. Wszędzie jest wymienione, że procesor posiada 8 rejestrów adresowych, jednakże a7 jest używany jako wskaźnik stosu - nie można go użyć do innych celów (chyba, że się wyłączy wszystkie przerwania oraz nie będzie używać podprocedur). W trybie nadzorcy można użyć rejestru A7 z trybu użytkownika, jednakże w bardzo ograniczonym zakresie. Można przesyłać dane tylko z rejestrami adresowymi (np. move.l a0,usp). W ten sposób można modyfikować stos użytkownika (w trybie nadzorcy). Procesor podczas swej normalnej pracy nie jest drastycznie spowalniany przez MMU/Shiftera. Wygląda to o wiele korzystniej niż na 8bitowym Atari. W uproszczeniu proces odczytu pamięci przez oba układy wygląda tak: Motorola wykonuje rozkazy w cyklach pracy. Typowy cykl trwa 4 cykle zegara. W pierwszym cyklu następuje odczyt rozkazu, w drugim i trzecim - wykonanie, a w czwartym zapis wyników. Zatem ruch na szynie jest w cyklu pierwszym i czwartym. W cyklu drugim i trzecim na szynie jest spokój. I w ten właśnie okres wbija się MMU/Shifter ze swoim odczytem, minimalizując swój wpływ na wydajność procesora. Niestety, nie zawsze tak fajnie się to układa - są rozkazy trwające np. 6 cykli albo i więcej. W uproszczeniu zakłada się, że rozkaz trwa wielokrotność 4 cykli. Dokładniej jest to opisane tutaj [3]. Gdyby ktoś chciał samemu coś spróbować - jest dostępny asembler działający na PCtach - vasm [6]. Jest on kompatybilny z DevPac'iem - popularnym zestawem na ST. Kilka faktów podstawowych - ST ma 3 tryby graficzne: 320x200x16 (lowres), 640x200x4 (midres) oraz 640x400x2 (hires). Atari ST nie ma trybu tekstowego. Standardowy obraz zawsze zajmuje 32000 bajtów pamięci. Obszar ten można umieścić w dowolnym miejscu pamięci, ale musi być wyrównane do 256 bajtów w pamięci, czyli dolne 8 bitów adresu to 0. W STE obraz można w pamięci umieścic z dokładnością do 4 bajtów. Tryby graficzne są opisane osobno lores/midres oraz hires z powodów różnic pomiędzy nimi. Tryby lowres i midres mogą pracować z częstotliwością odświeżania 50 oraz 60 Hz. Cała paleta ST to 512 kolorów zorganizowanych w 3bitowe RGB. Czyli mamy normalny czerwony :). Wartości RGB zapisuje się do rejestrów palety, i stąd są pobierane kolory na ekran. Niestety, ST w tych trybach graficznych używa bitplanów. Są one jednak dosyć sprytnie zorganizowane. Myk polega na tym, że bitplany nie są ułożone liniowo (cała linia lub cały ekran obok siebie), tylko są przeplatane między sobą. Wygląda to tak, że pierwsze słowo (16 bitów) to są pierwsze bity 16 pikseli. Kolejne słowo w pamięci ekranu - drugie bity, itd aż do ostatniego bitplanu. Potem ponownie - słowo to pierwsze bity kolejnych pikseli... Co nam to daje? Ano to, że ładując do rejestru długie słowo (32 bity) mamy w rejestrze dwa bitplany. W ten sposób można niejako zredukować liczbę operacji na pamięci o połowę. Nie oznacza to jednak pracy o połowę szybciej. Operacje na 32 bitach procesor wykonuje wolniej niż na 16. Drugim pomysłem (nie wykluczającym poprzedniego) jest rozkaz procesora movem. Przenosi on dane pomiędzy wybranymi (wieloma) rejestrami a pamięcią, np. movem.l d0-d7/a2-a5,(a1)+. Można zatem operować od razu na wielu pikslach jednocześnie W ten sposób działa umieszczona w linkach poniżej procedura c2p - na ST najszybsza. Zupełnie inaczej wygląda sprawa z hiresem. Ma on rozdzielczość 640x400 w dwóch kolorach (na sztywno czarny/biały), które można odwrócić. Częstotliwość odświeżania to 70Hz. Dużą zaletą tego trybu jest to, że ma liniową pamięć ekranu. 1 bit w pamięci to 1 piksel na ekranie. Tryb ten jest jednak mało popularny na demoscenie. Bardzo mało jest fajnych produkcji na to, choć na SV2k13 jedna się pojawiła. Największą wadą tego trybu jest to, że wymaga on specjalnego monitora. Dużą zaletą jednak jest wspomniana przed chwilą liniowość pamięci (brak bitplanów). Do rysowania grafiki dla ST w podstawowych trybach na PC można użyć programu Grafx2. W tym miejscu mała uwaga - wiele się słyszy o profesjonalnym wykorzystaniu ST w studiach muzycznych (w czasach świetności tej maszyny). Nie chodzi tu jednak o generowanie dźwięku przez samo ST, ale o MIDI, w które ST jest fabrycznie wyposażone. Za pomocą tego złącza można sterować innymi instrumentami, i dopiero one wydają dźwięki. Samo ST do generowania dźwięku używa układu Yamaha YM-2149 - podobny do tego, który siedzi w ZX Spectrum, Amstradach, itd... Układ ten ma trzy kanały, kilka obwiedni do wyboru. Podstawowe brzmienie układu może rozczarowywać. Siłą jest jednak połączenie układu syntezującego dźwięk z mocnym procesorem i bardziej rozbudowanym systemem jakim jest ST. Mowa w tym momencie o zegarach i ich przerwaniach. Działają one podobnie jak przerwania zegarów Pokeya w XE. Na ST jednak zegary są niezależne od dźwięku. I używa się ich do modyfikowania standardowych brzmień układu dźwiękowego. Koncepcyjnie jest to zbliżone do grania x razy na ramkę na XE, jednakże jest to bardziej rozbudowane. By samemu ocenić na ile taka możliwość potrafi zmienić oblicze dźwięku proponuję posłuchać utworów np. Stu. Programów do tworzenia muzyki na ST jest sporo. Popularny jest Maxymiser. Jego obsługa jest wzorowana na PC-towym FastTrackerze. Nie jest on jednak prosty w obsłudze. Innym, niemałe możliwości posiadającym programem jest MusicMon. Nie ma narzędzi do robienia muzyki na ST działających na innym sprzęcie (np. PC). Należy użyć emulatora, i za jego pomocą uruchomić wybrany program muzyczny. Takie zalecenia są spotykane nawet w tutorialach. Linki: 1. Tutorial do programowania na ST 2. Cykle na ST 3. Chunky2Plannar 4. Rejestry, zmienne systemu 5. Bomby 6. Strona domowa VASM 7. Strona domowa Maxymisera 2014-08-08 22:37 by Rafał "bob_er" Ciepiela & Cyprian Konador
komentarzy: 74 |
xeen @2014-08-08 22:58:56 |
xxl @2014-08-08 23:10:22 |
gorgh @2014-08-08 23:16:24 |
seban @2014-08-08 23:36:20 |
larek @2014-08-08 23:42:05 |
tdc @2014-08-09 00:26:11 |
balon @2014-08-09 02:16:31 |
grey / mystic bytes @2014-08-09 05:26:03 |
dhor @2014-08-09 11:24:22 |
bob_er @2014-08-09 12:07:51 |
mono @2014-08-09 15:02:46 |
urborg @2014-08-09 18:00:31 |
kade @2014-08-10 12:15:13 |
vaco @2014-08-10 12:26:02 |
wieczór @2014-08-10 13:00:01 |
Atr @2014-08-10 14:33:29 |
xeen @2014-08-10 19:53:48 |
bob_er @2014-08-11 07:06:08 |
koala @2014-08-11 08:55:43 |
George @2014-08-11 12:47:01 |
wieczór @2014-08-11 18:32:01 |
grey / mystic bytes @2014-08-11 19:56:39 |
@hospes: z niecierpliwością czekam na Twojego artka :D Co do Bob_era to jestem gotów zaryzykować stwierdzenie, że jest on takim samym fanem dużego Atari jak Ty czy ja :) Fajnie, że opisał chociaż te podstawy dotyczące ST - większość osób przesiadła się od razu z małego Atari na Amigę. Dla mnie przejście z malucha na ST było czymś naturalnym. Nie zgodziłbym się z Kade, który napisał, że ten komp był marginalnym u nas w Polsce - wiele wydawnictw, nawet tych nie związanych z Atari było składane właśnie na ST-kach i TT-kach, a w studiach muzycznych święcił prawdziwe triumfy i był niezwykle popularny wśród naszych rodzimych muzyków. Oczywiście był (trzymając się takiej terminologii) "marginalny" w tematyce growej - lecz mimo to na giełdach nie brakowało ludzi sprzedających software na te maszyny. Pojawiły się też 2 pisma tylko o Atari ST (w tym jedno ukazujące się w kiosku). Dlatego z tą "marginalnością" bym nie przesadzał :) Może sam kiedyś pokuszę się o podobny artykuł - zaraz po tym, jak zrobi to Hospes, czyli za 25 lat :D Pozdrawiam. |
Atr @2014-08-12 13:11:16 |
Hospes @2014-08-12 13:37:30 |
bob_er @2014-08-12 13:45:51 |
as... @2014-08-12 19:04:53 |
PO ste będzie czas na flaki :( : https://www.youtube.com/watch?v=GVyS68Dj... https://www.youtube.com/watch?v=EyTGMQdd... https://www.youtube.com/watch?v=kXzMkO83... to nawet brzmi podobnie jak na Falconie.... https://www.youtube.com/watch?v=ZiW2wmFe... Ale wiele brakuje temu kawałkowi na youtubie. youtube vs flak to przepaść ... szczególnie przy kawałkach Yerzmey-a ... Nie jestem audiofilem, używam tych samych słuchawek (za 200pln) bądź tych samych "kolumn" oryginalny flak to przepaść... vs youtube. Ale to tak na off ... Trzeba będzie zrobić art. o Flaku. p.s. najlepszy kawałek jaki słyszałem na flaku: https://www.youtube.com/watch?v=AMSe21uM... Youtube totalnie tego nie odda :( |
Atr @2014-08-12 20:59:53 |
0xF @2014-08-13 10:00:44 |
Hospes @2014-08-13 10:01:23 |
https://www.youtube.com/watch?v=yzH4YfN8... a tutaj masz Yamaha plus Przetwory - i jak to mowią "Atarowcy słuchali DubStepu zanim jeszcze był popularny" :D |
bob_er @2014-08-13 10:19:19 |
grey / mystic bytes @2014-08-13 11:12:24 |
Co do Yamahy to oprócz Ultrasyda, STU, 505 oraz !Cube na YM2149 znakomicie radzili/radzą sobie: Scavenger: https://www.youtube.com/watch?v=MqdFzOf0... Tao: https://www.youtube.com/watch?v=4-7mWnQt... Mad Max: https://www.youtube.com/watch?v=m_KBi4xk... Yamaha 2149 nie najgorzej radzi sobie także z modułami, przykład np. tutaj: https://www.youtube.com/watch?v=yXokFFlR... A dzięki programowi Hextracker zwykły ST tylko przy pomocy Yamahy odgrywa MODy (i to wielokanałowe) w bardzo wysokiej jakości - jeden z kawałków 8chn / 24.6 KHz poniżej: https://www.youtube.com/watch?v=L5zphIYa... Jeśli chodzi o grafikę to zwykły ST również radzi sobie doskonale, przykładem niech będzie demo STreet Art grupy Blabla (Silly Venture 2k12): https://www.youtube.com/watch?v=gJDL6Vbz... |
Hospes @2014-08-13 11:14:46 |
grey / mystic bytes @2014-08-13 11:22:15 |
YERZMYEY @2014-08-13 13:25:02 |
..."nienajgorzej", to sobie GREY radzi z organizowaniem zlotów, hahaha. >8-D Yamaha 2149 *doskonale* radzi sobie także z modułami 4ch, które odtwarza z jakością 50khz http://ym-digital.i-demo.pl/album2/01_YM... http://ym-digital.i-demo.pl/album2/05_YM... jak również z modułami 6ch z jakością 22khz http://media.chipmusic.org/music/2013/12... http://ym-digital.i-demo.pl/album2/08_YM... i innymi. Jest na to cały szereg dobrych i bardzo dobrych trackerów. Stwierdzam więc tu poważny brak występujący w inkryminowanym artykule. No nic, nie będę więcej przeszkadzać Łaskawcom. |
grey / mystic bytes @2014-08-13 13:30:02 |
as... @2014-08-13 16:10:51 |
grey / mystic bytes @2014-08-13 18:30:47 |
@Atr: oto linki do dwóch kawałków w formacie MP3 o których wspomniał Bob_er - autorstwa !Cube / Aggression: Blink (1st place / SV2k10): http://cube.gfxile.net/t/files/sndh" target="_blank">http://cube.gfxile.net/t/files/sndh/!Cube%20-%20Blink.mp3 Blipblop Memories (1st place / SV2k13): http://cube.gfxile.net/t/files/sndh" target="_blank">http://cube.gfxile.net/t/files/sndh/!Cube%20-%20Blipblop%20Memories.mp3 O gustach się nie dyskutuje :) Na YM2149 jest cała masa ciekawych utworów. Jednym się podobają, drugim nie - podobnie jak z POKEY'em czy SID'em. Każdy ma swój "charakter i brzmienie" jak niektórzy mawiają :) Pozdrawiam. |
grey / mystic bytes @2014-08-13 18:33:39 |
Coś nie poszło z linkami :) No to jeszcze raz: Blink (1st place / SV2k10): http://tiny.pl/qsn31 Blipblop Memories (1st place / SV2k13): http://tiny.pl/qsn3p |
bob_er @2014-08-13 21:38:26 |
Do słuchania SNDH pod Windows używam JAMa: http://www.creamhq.de/jam.php |
stiwen @2014-08-13 23:10:56 |
Atr @2014-08-14 02:42:45 |
AdamK @2014-08-16 08:05:01 |
Drobna poprawka: ST może mieć więcej pamięci niż 4 MB, ale jest to niezwykle rzadkie, no i pamięć powyżej 4MB nie jest dostępna dla układów specjalizowanych, a jedynie dla procesora, oraz wymagany jest TOS 2.06 (nie musi też ona być liniowa). Warto też wspomnieć takie linki: Mapa pamięci ST/E/TT/Falcon: http://ftp.lip6.fr/pub/atari0/Docs/hardw... Opos blittera (STE, Falcon): http://paradox.atari.org/files/BLIT_FAQ.... |
ming @2014-08-16 16:06:41 |
ming @2014-08-16 21:30:10 |
rotus @2014-08-17 22:07:16 |
Atr przejrzyj jeszcze ten wątek http://atarionline.pl/forum/comments.php.... Znajdziesz w nim sporo fajnych utworków które, wybrali użytkownicy forum. Ja od siebie dodam jeszcze jeden z moich ulubionych https://www.youtube.com/watch?v=agTxDTnP... Miłego słuchania :) |
Ender @2014-08-18 12:11:52 |
A mnie czasami zastanawia, czy ST byłoby popularniejsze/ lepsze gdyby zamiast Motoroli, wybrali http://pl.wikipedia.org/wiki/WDC_65816/6... ? |
grey / mystic bytes @2014-08-18 22:57:34 |
Ender @2014-08-19 08:52:48 |
bob_er @2014-08-19 09:06:01 |
Ender @2014-08-19 10:56:03 |
No to gdybania ciąg dalszy, ciekawe, czy dałoby się dostosować do Atari ST ten projekt http://retroami.com.pl/product.php?id_pr... lub opracować coś podobnego, ale koniecznie mieszczącego się w standardowej pięknej obudowie. No i drugi szalony pomysł, wykorzystanie pomysłu z MiniMiga i turbo w oparciu o ARM (ponoć 68000 może chodzić nawet 50 mhz). |
yerzmyey @2014-08-19 18:52:18 |
ming @2014-08-19 19:07:42 |
ming @2014-08-19 19:28:32 |
as... @2014-08-19 21:45:49 |
Trophy @2022-04-22 00:20:15 |
«« nowsze | starsze »» |
«« nowsze | starsze »» |