Kurs asemblera dla początkujących Amiga500-4000

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Książka opisuje programowanie układów specjalizowanych w komputerach Amiga w języku asemblera MC68000.

Author(s): Adam Doligalski
Series: 1
Publisher: Helion
Year: 1994

Language: Polish
Pages: 308
Tags: Amiga, Assembler, MC68000, Programming, Computer

Spis treści......Page 5

Rozdział I - Wprowadzenie
1.1 Systemy liczenia......Page 11
1.2 Bity, bajty, słowa....Page 10
1.3 Organizacja pamięci......Page 12
1.4 Co to jest asembler i kod maszynowy......Page 13

Rozdział II - Mikroprocesor MC68000
2.1 Mikroprocesor Motorola 68000......Page 14
2.2 Rozkazy Motoroli 68000......Page 16
2.3 Tryby adresowania......Page 17
2.4 Kod BCD......Page 19
2.5 Błędne rozkazy a program asemblujący......Page 21
2.6 Pisanie procedur wykonujących operacje arytmetyczne......Page 22

Rozdział III - Hardware Amigi
3.1 Rodzaje pamięci w Amigach......Page 33
3.2 Obszary pamięci i ich znaczenie......Page 35
3.3 Procesory specjalizowane Amigi......Page 36
3.4 Kanały DMA......Page 37

Rozdział IV - Programowanie coppera
4.1 Charakterystyka coppera......Page 38
4.2 MOVE, WAIT, SKIP - instrukcje coppera......Page 37
4.2.1 Jak w asemblerze zapisać instrukcję coppera ?......Page 39
4.2.2 Instrukcja WAIT......Page 40
4.2.3 Instrukcja MOVE......Page 39
4.2.4 Instrukcja SKIP......Page 41
4.5.1 Rejestry lokacji......Page 42
4.6 Rejestry kolorów......Page 43
4.8 Kompletne procedury uruchamiające copperlistę......Page 44
4.9 Animacja......Page 51

Rozdział V - Playfield
5.2 Podstawowe cechy playfieldu......Page 58
5.3.1 Podstawowe rejestry — bitplany i kolory......Page 59
5.3.2 Przydzielanie pamięci na bitpiany......Page 61
5.3.3.1 Ustawianie pozycji startowej i końcowej pionu......Page 62
5.3.3.3 Zapisywanie rejestrów......Page 63
5.3.4 Sposób pobierania danych przez system......Page 64
5.3.5 Rozdzielczości......Page 65
5.3.8 Podsumowanie wiadomości o wyświetlaniu playfieldu......Page 66
5.3.9 Przykłady tworzenia prostego playfieldu 65......Page 67
5.3.10 Tryb interlace......Page 71
5.3.11 Rawblit......Page 73
5.3.13 Tryb HAM (Hold And Modify)......Page 75
5.4.1 Wyznaczanie bitplanów w trybie DUAL PLAYFIELD......Page 76
5.4.4 Uruchomienie trybu DUAL PLAYFIELD......Page 77
5.5.1 Bitpiany większe od okna wyświetlania......Page 78
5.6 Scrollowanie playfieldów......Page 79
5.6.1.2 Określanie modulo w scrollowaniu poziomym......Page 80
5.6.1.5 Przykład scrollowania poziomego......Page 81
5.6.2.1 Przykład scrollowania pionowego......Page 94

Rozdział VI - Blitter
6.2 Określanie adresów kanałów i typu operacji......Page 95
6.3 Określanie obszaru operacji......Page 99
6.5 Tryb DESCENDING......Page 100
6.6 Tryb wypełniania......Page 101
6.9 Znacznik zerowy......Page 102
6.10 Rysowanie linii......Page 103
6.10.1 Podsumowanie wiadomości o rysowaniu linii......Page 105
6.12 Kontrolowanie blittera za pomocą coppera......Page 106
6.13 Przykłady programowania blittera......Page 107

Rozdział VII - Sprajty
7.2 Definiowanie struktury spritea dla kanałów DMA......Page 111
7.2.1.2 Definiowanie pozycji pionowej......Page 112
7.2.4 Kolory spriteów......Page 113
7.2.5 Tworzenie struktury spritea......Page 114
7.2.5.3 Zapis koloru i kształtu spritea......Page 115
7.3.1 Wybieranie kanatu DMA i określanie adresów......Page 116
7.5 Łączenie spriteów......Page 117
7.5.1 Spritey 16 kolorowe......Page 118
7.6 Tryb ręczny obsługi spriteów......Page 119
7.8 Podsumowanie wiadomości o rejestrach obsługi spriteów......Page 120
7.9 Przykład procedury obsiugującej spritea......Page 121

Rozdział VIII - Obsługa dźwięku
8.1 Wstęp......Page 124
8.3.2 Określanie długości danych do odtworzenia — AUDxLEN......Page 126
8.3.3 Ustalanie głośności kanału — AUDxVOL......Page 127
8.3.4 Określanie tempa odtwarzania dźwięku — AUDxPER......Page 128
8.4 Modulacja dźwięku......Page 129
8.6 Tryb "ręczny"......Page 130
8.7 Wykorzystanie dźwięku w praktyce......Page 131
8.8 Odtwarzanie modułów muzycznych......Page 133

Rozdział IX - Kontrola systemu i obsługa interfejsów
9.2.1 Priorytety spriteów......Page 135
9.2.3 Ustawianie priorytetów pomiędzy spriteami a playfieldem......Page 136
9.3 Wykrywanie kolizji......Page 137
9.4 Pozycja promienia, jej sprawdzanie i związek z animacją......Page 138
9.5.1 Stany wyjątkowe i wektory......Page 140
9.5.2 Przykłady i objaśnienia stanów wyjątkowych......Page 142
9.5.2.1 Instrukcje nielegalne i niezaimplementowane......Page 143
9.5.2.4 Instrukcje TRAP #x......Page 144
9.5.2.5 Instrukcja TRAPV......Page 145
9.5.2.6 Instrukcja CHK......Page 146
9.5.3 Przerwania......Page 147
9.5.3.1 Omówienie i przykłady inicjacji przerwań......Page 150
9.6 Układy CIA......Page 151
9.6.1 CIA-A......Page 152
9.6.2 Przerwania układu CIA-A......Page 156
9.6.3 Klawiatura......Page 157
9.6.4 CIA-B......Page 161
9.6.5.1 Pojemność dyskietki, a kod MFM......Page 165
9.6.5.2 Obsługa kontrolera stacji dysków......Page 167
9.6.5.3 Użytkowanie DMA dysku......Page 174
9.6.5.4 Przykładowa procedura odczytu z dysku......Page 176
9.6.6 Bootblock......Page 179
9.7.1 Myszka i trackball......Page 182
9.7.2 Joystick......Page 185
9.8 Podstawy kontroli systemu operacyjnego......Page 186
9.8.1 Biblioteki......Page 187
9.8.2 Otwieranie i zamykanie bibliotek......Page 188
9.8.3 Rezerwacja pamięci......Page 189
9.8.5 Włączanie i wyłączanie multitaskingu......Page 190
9.8.6.1 Otwarcie i zamknięcie pliku......Page 191
9.8.6.2 Odczyt i zapis danych......Page 192
9.9.1 Układy CIA i przerwania......Page 193
9.9.4 Pamięć......Page 194

Rozdział X - Grafika przestrzenna
10.2 Trzy wymiary......Page 196
10.2.1.1 Obroty......Page 197
10.2.2 Rzutowanie perspektywiczne......Page 198
10.3 Realizacja przekształceń trójwymiarowych w asemblerze......Page 199
10.3.2 Perspektywa......Page 201
10.3.3 Obroty......Page 202
10.4 Przyspieszenie podprogramów obliczających......Page 204
10.5.1 Reprezentacja punktowa......Page 206
10.5.2 Reprezentacja szkieletowa......Page 207
10.5.3 Reprezentacja szkieletowa z usuniętymi niewidocznymi liniami......Page 208
10.5.4 Reprezentacja grafiki wypełnianej......Page 210
10.5.4.2 Wektorówka "niewypukła"......Page 211
10.6 Kompletna procedura prezentacji wypełnianej grafiki przestrzennej......Page 213
10.7 Clipping......Page 222

Rozdział XI - Optymalizacja szybkości działania programów
11.1 Zastępowanie instrukcji......Page 225
11.3 Optymalizacja czasowa pętli......Page 228
11.5 Główne zasady pisania szybkich procedur......Page 229

Rozdział XII - Układy AGA
12.1 Co nowego oferują układy AGA ?......Page 231
12.2 Nowe tryby graficzne......Page 232
12.3.1 Bitplany......Page 233
12.3.2 Spritey......Page 235
12.3.2.2 Zmiana palety kolorów spriteów......Page 237
12.4 Tabela adresowania rejestrów kolorów......Page 239
12.8 Przełączanie z 15 kHz na 31 kHz......Page 240
12.9 Jak wykryć układy AGA ?......Page 241

Dodatek I - Lista rejestrów w porządku alfabetycznym......Page 242
Dodatek II - Lista rejestrów w kolejności adresowej......Page 263
Dodatek III - Omówienie pozostałych rozkazów Motoroli 68000......Page 271
Dodatek IV - Tablice czasu wykonywania poszczególnych instrukcji MC 68000......Page 285
Dodatek V - Opis programu ASM ONE......Page 294
Dodatek VI - Skorowidz rozkazów MC 68000......Page 306