Kurs Assemblera (Amiga) - Helion
ISBN: 83-85701-37-0
stron: 304, Format: B5, okładka: miękka
Data wydania: 1994-11-09
Księgarnia: Helion
Cena książki: 19,50 zł
Czy wiesz, że możesz samodzielnie programować Amigę?
- Jak napisać własną grę?
- Programowanie procesora
- Asembler Motoroli 68000
- Jak tworzyć sprite'y
- Jak tworzyć sprite'y i rysunki przestrzenne
- Jak optymalizować szybkość działania programów
Czy wiesz, że do tworzenia programów przeznaczone są języki programowania? Niestety wykorzystanie ich do tworzenia animacji może zakończyć się niepowodzeniem, gdyż obraz będzie się zmieniał skokowo, a nie płynnie. Żeby zwiększyć szybkość działania programów, trzeba tworzyć procedury w asemblerze, języku zrozumiałym dla procesora. Ta książka umożliwi programowanie procesora osobom, które dotychczas nie zetknęły się z takimi pojęciami, jak rejestr czy lista rozkazów procesora.
Czytelnik poznaje asembler Motoroli 68000 stopniowo, dzięki przykładom programowania poszczególnych układów Amigi (coopera, blittera i układów dźwiękowych). Oprócz opisu języka, w książce znajdują się odpowiedzi na pytania dręczące początkujących programistów: jak wypełnić obszar między liniami, jak tworzyć sprite'y, jak tworzyć rysunki przestrzenne, jak optymalizować szybkość działania programów.
Osoby które kupowały "Kurs Assemblera (Amiga)", wybierały także:
- Roslyn Cookbook 135,91 zł, (29,90 zł -78%)
- PowerShell Advanced Cookbook 88,41 zł, (38,90 zł -56%)
- Programowanie w asemblerze x64. Od nowicjusza do znawcy AVX 75,63 zł, (42,35 zł -44%)
- Programowanie w asemblerze x64. Od nowicjusza do znawcy AVX 77,00 zł, (50,05 zł -35%)
- Asembler. Podręcznik programisty 119,00 zł, (77,35 zł -35%)
Spis treści
Kurs Assemblera (Amiga) -- spis treści
Rozdział I. Wprowadzenie
- 1.1 Systemy liczenia
- 1.2 Bity, bajty, słowa
- 1.3 Organizacja pamięci
- 1.4 Co to jest asembler i kod maszynowy
Rozdział II. Mikroprocesor MC 68000
- 2.1 Mikroprocesor Motorola 68000
- 2.2 Rozkazy Motoroli 68000
- 2.3 Tryby adresowania
- 2.4 Kod BCD
- 2.5 Błędne rozkazy a program asemblujący
- 2.6 Pisanie procedur wykonujących operacje arytmetyczne
Rozdział III. Hardware Amigi
- 3.1 Rodzaje pamięci w Amigach
- 3.2 Obszary pamięci i ich znaczenie
- 3.3 Procesory specjalizowane Amigi
- 3.4 Kanały DMA
Rozdział IV. Programowanie coppera
- 4.1 Charakterystyka coppera
- 4.2 MOVE, WAIT, SKIP - instrukcje coppera
- 4.2.1 Jak w asemblerze zapisać instrukcję coppera?
- 4.2.2 Instrukcja WAIT
- 4.2.3 Instrukcja MOVE
- 4.2.4 Instrukcja SKIP
- 4.3 Pozioma pozycja promienia wizji w instrukcjach coppera
- 4.4 Pionowa pozycja promienia wizji w instrukcjach coppera
- 4.5 Rejestry coppera
- 4.5.1 Rejestry lokacji
- 4.5.2 Rejestry skoków
- 4.5.3 Rejestr kontrolny
- 4.6 Rejestry kolorów
- 4.7 Tworzenie copperlisty
- 4.8 Kompletne procedury uruchamiające copperlistę
- 4.9 Animacja
Rozdział V. Playfield
- 5.1 Wstęp
- 5.2 Podstawowe cechy playfieldu
- 5.3 Zasady tworzenia prostego playfieldu
- 5.3.1 Podstawowe rejestry - bitplany i kolory
- 5.3.2 Przydzielanie pamięci na bitplany
- 5.3.3 Definiowanie rozmiaru okna wyświetlania
- 5.3.4 Sposób pobierania danych przez system
- 5.3.5 Rozdzielczości
- 5.3.6 Określenie zawartości bitplanów
- 5.3.7 Wielokrotne wyświetlanie playfieldu
- 5.3.8 Podsumowanie wiadomości o wyświetlaniu playfieldu
- 5.3.9 Przykłady tworzenia prostego playfieldu
- 5.3.10 Tryb interlace
- 5.3.11 Rawblit
- 5.3.12 Tryb EHB (Extra Half Bright)
- 5.3.13 Tryb HAM (Hold And Modify)
- 5.4 Wyświetlanie w trybie DUAL PLAYFIELD
- 5.4.1 Wyznaczanie bitplanów w trybie DUAL PLAYFIELD
- 5.4.2 Rejestry kolorów w trybie DUAL PLAYFIELD
- 5.4.3 Priorytety playfieldów
- 5.4.4 Uruchomienie trybu DUAL PLAYFIELD
- 5.4.5 Podsumowanie wiadomości o trybie DUAL PLAYFIELD
- 5.5 Bitplany i okna wyświetlania wszystkich rozmiarów
- 5.5.1 Bitplany większe od okna wyświetlania.
- 5.5.2 Maksymalny rozmiar okna wyświetlania
- 5.6 Scrollowanie playfieldów
- 5.6.1 Scrollowanie poziome
- 5.6.2 Scrollowanie pionowe
Rozdział VI. Blitter
- 6.1 Wprowadzenie
- 6.2 Określanie adresów kanałów i typu operacji.
- 6.3 Określanie obszaru operacji.
- 6.4 Przesunięcia i maski.
- 6.5 Tryb DESCENDING
- 6.6 Tryb wypełniania.
- 6.7 Używanie wyłączonych kanałów źródłowych
- 6.8 Bit wykonania i znacznik przerwania
- 6.9 Znacznik zerowy
- 6.10 Rysowanie linii
- 6.10.1 Podsumowanie wiadomości o rysowaniu linii
- 6.11 Reguła programowania blittera
- 6.12 Kontrolowanie blittera za pomocą coppera.
- 6.13 Przykłady programowania blittera.
Rozdział VII. Spritey
- 7.1 Wprowadzenie
- 7.2 Definiowanie struktury spritea dla kanałów DMA.
- 7.2.1 Definiowanie pozycji
- 7.2.2 Definiowanie rozmiaru spriteów
- 7.2.3 Kształt spriteów
- 7.2.4 Kolory spriteów
- 7.2.5 Tworzenie struktury spritea
- 7.3 Wyświetlanie spriteów
- 7.3.1 Wybieranie kanału DMA i określanie adresów
- 7.3.2 Odświeżanie adresu struktury
- 7.4 Priorytety spriteów
- 7.5 Łączenie spriteów
- 7.5.1 Spritey 16 kolorowe
- 7.6 Tryb ręczny obsługi spriteów
- 7.7 Kolizje między spriteami, a playfieldem
- 7.8 Podsumowanie wiadomości o rejestrach obsługi spriteów
- 7.9 Przykład procedury obsługującej spritea
Rozdział VIII. Obsługa dźwięku
- 8.1 Wstęp
- 8.2 Przetworniki C/A
- 8.3 Odtwarzanie dźwięku
- 8.3.1 Określanie adresu sampla w pamięci - AUDxLCH i AUDxLCL
- 8.3.2 Określanie długości danych do odtworzenia - AUDxLEN
- 8.3.3 Ustalanie głośności kanału - AUDxVOL
- 8.3.4 Określanie tempa odtwarzania dźwięku - AUDxPER
- 8.3.5 Odtwarzanie dźwięku
- 8.4 Modulacja dźwięku
- 8.5 Filtr dolnoprzepustowy
- 8.6 Tryb "ręczny"
- 8.7 Wykorzystanie dźwięku w praktyce
- 8.8 Odtwarzanie modułów muzycznych
Rozdział IX. Kontrola systemu i obsługa interfaceów
- 9.1 Wprowadzenie
- 9.2 Priorytety wizji
- 9.2.1 Priorytety spriteów
- 9.2.2 Grupowanie spriteów
- 9.2.3 Ustawianie priorytetów pomiędzy spriteami a playfieldem
- 9.3 Wykrywanie kolizji
- 9.4 Pozycja promienia, jej sprawdzanie i związek z animacją
- 9.5 Przerwania i stany wyjątkowe
- 9.5.1 Stany wyjątkowe i wektory
- 9.5.2 Przykłady i objaśnienia stanów wyjątkowych
- 9.5.3 Przerwania
- 9.6 Układy CIA
- 9.6.1 CIA-A
- 9.6.2 Przerwania układu CIA-A
- 9.6.3 Klawiatura
- 9.6.4 CIA-B
- 9.6.5 Kontrola stacji dysków
- 9.6.6 Bootblock
- 9.7 Obsługa urządzeń sterowniczych
- 9.7.1 Myszka i trackball
- 9.7.2 Joystick
- 9.7.3 Pióro świetlne
- 9.8 Podstawy kontroli systemu operacyjnego
- 9.8.1 Biblioteki
- 9.8.2 Otwieranie i zamykanie bibliotek
- 9.8.3 Rezerwacja pamięci
- 9.8.4 Zwalnianie zarezerwowanej pamięci
- 9.8.5 Włączanie i wyłączanie multitaskingu
- 9.8.6 Operacje na plikach
- 9.9 Współpraca z systemem operacyjnym
- 9.9.1 Układy CIA i przerwania
- 9.9.2 Rejestr D0
- 9.9.3 Copperlista systemowa
- 9.9.4 Pamięć
Rozdział X. Grafika przestrzenna
- 10.1 Wstęp
- 10.2 Trzy wymiary
- 10.2.1 Przekształcenia współrzędnych w przestrzeni
- 10.2.2 Rzutowanie perspektywiczne
- 10.3 Realizacja przekształceń trójwymiarowych w asemblerze
- 10.3.1 Przesunięcia
- 10.3.2 Perspektywa
- 10.3.3 Obroty
- 10.4 Przyspieszenie podprogramów obliczających
- 10.5 Wizualizacja obiektów
- 10.5.1 Reprezentacja punktowa
- 10.5.2 Reprezentacja szkieletowa
- 10.5.3 Reprezentacja szkieletowa z usuniętymi niewidocznymi liniami
- 10.5.4 Reprezentacja grafiki wypełnianej
- 10.6 Kompletna procedura prezentacji wypełnianej grafiki przestrzennej
- 10.7 Clipping
Rozdział XI. Optymalizacja szybkości działania programów
- 11.1 Zastępowanie instrukcji
- 11.2 Sztuczki i triki
- 11.3 Optymalizacja czasowa pętli
- 11.4 Szybkie czyszczenie i wypełnianie pamięci
- 11.5 Główne zasady pisania szybkich procedur.
Rozdział XII. Układy AGA
- 12.1 Co nowego oferują układy AGA?
- 12.2 Nowe tryby graficzne
- 12.3 Omówienie nowych możliwości
- 12.3.1 Bitplany
- 12.3.2 Spritey
- 12.4 Tabela adresowania rejestrów kolorów
- 12.5 Kompatybilność
- 12.6 Kolizje
- 12.7 Monitory
- 12.8 Przełączanie z 15 kHz na 31 kHz
- 12.9 Jak wykryć układy AGA?
Dodatek I. Lista rejestrów w porządku alfabetycznym
Dodatek II. Lista rejestrów w kolejności adresowej
Dodatek III. Omówienie pozostałych rozkazów Motoroli 68000
Dodatek IV. Tablice czasu wykonywania poszczególnych instrukcji MC 68000
Dodatek V. Opis programu ASM ONE
Dodatek VI. Skorowidz rozkazów MC 68000