AMIGA REVIEW online
  Uvodná stránka     Software     Hry     Obaly     Download     Amiga na PC     Amiga Forever  

Chodníčkem blíž, cestičkou spíš

Jan Petkov

Od dob starých dobrých osmibitů snad nebyla žádací jiná platforma v takové oblibě u programátorů v assembleru jako naše Amiga. Nebylo to ovšem zapříčiněno pouze intuitivním programováním procesorů MC680x0, ale také jejich pomalostí. Mále-li úmyslu konkurovat intelovským paticím žhaveným na stovkách MHz, nezbývá než šlápnout chudákovi Motorolce trochu na krk. A výsledek se brzy dostaví - Guru Meditation se stane naším důvěrným společníkem. Aby těch červených okýnek a blikajících ledek bylo co nejméně, připravil jsem si pro vás několik doporučení a rad od samotných vývojářů starého dobrého Commodoru, budiž, jim platforma lehká.

Používejte funkce operačního systému všude kde je to možné. Když už to jinak nejde, tak použijte znovu operační systém a teprve pak uznáte-li to za vhodné, přistupujte přímo k hardwaru Amigy.
Neskákejte do ROMky. Přesněji řečeno - nenechte svůj soft skákat do ROMky. Nevěřte žádnému programu, který podniká nekalé výpady na území $F80000 až $FFFFFF. Toto rozmezí je rezervováno pro paměť ROM, která se mění rychleji než názory politiků. Taky vám nikdo nezaručí, že tam ROMka opravdu bude. Pro komunikaci s ROMkou máte k dispozici knihovny, devices a resourees.
Nesnažte se modifikovat nebo spoléhat na kteroukoli privátní strukturu systému, narazíte. Toto varování zahrnuje i copper-listy, memory-listy a báze knihoven.
Jen šílenec ve svěrací kazajce a nezkušený coder může spoléhat na některou z pevných adres, strukturu nebo paměť. S každou novou verzí systému se všechno radikálně, dynamiky a neuvěřitelně mění. Jediná jistota v sypkých píscích pouště ADOSu je adresa $4, kde sídlí ukazatel na bázi „exec.library“. Ale ani za to bych Amigu do ohně nedal.
Pamatujte na to, že všechna data vyžadující DMA musí sedět v CHIP paměti (týká se grafických dat, samplů, trackdisk buferu a copperlistů!). Pro ty méně zkušené programátory v assembleru připomínám direktivu „SECTION“, která vám dovolí rozhodit části programu do různých typů pamětí (např.: „SECTION MůjProgram, CODE_C“ přesměruje následující kód do CHIP-RAMky).
Neexperimentujte se zákaznickými chip registry (od adresy $DFF000)! Občas vám může některá z adres sloužit za generátor náhodných čísel, příště však bude dobrá jen pro generování náhodného GURU meditation. Pokud není daná adresa někde publikovaná, zanechte ji svému osudu jako buchtičku v tanečních. Nejsou-li některé bity v registrech využity, nulujte je při zápisu a ignorujte při čtení.
Netlačte data za aktuální konečnou adresu zákaznických chip registrů, je jen otázkou času, kdy se právě na tom místě objeví něco nového a pro vaše mírumilovní data velmi nepřátelského.
Každý ze zákaznických chip registrů je utčen buď pro čtení nebo pro zápis, nezapisujte do registrů pro čtení a nečtěte registry pro zápis. Nehrajte si s nimi jako kočka s myší.
Ani koutkem oka nešilhejte do nedefinovaných oblastí paměti, mohli by se vám zjevit velmi nepěkné věci.
Při volání funkcí systému jsou obnoveny všechny registry kromě D0-D1/A0-A1. V D0 je navrácen výsledek pro test úspěšnosti funkce (v A6 je báze knihovny).
Hardware Amigy si nerozumí s instrukcí TAS, bude jen dohře když ji vypustíte ze slovníku spisovných instrukcí. TAS je možno nahradit instrukcemi BSET echo BCLR.
Na strobovací adresy (např. COPIJMP) nepouštějte CLR! U staré dobré 68000 má instrukce čtecí a nulovací cyklus, u novější řady procesorů jen nulovací. Kromě toho je MOVE přeci jenom rychlejší.
Ve svých programech nepoužívejte instrukce, které jsou na daném procesoru privilegované (jako je „MOVE SR,<ca>“), místo nich zneužijte systém („GetCC()“). Při adresaci předpokládejte vždy plnou 32 bitovou adresu.
Až bude váš program napsaný a náhodou bude chodit, nezapomeňte jej otestovat na co nejvíce konfiguracích, však vás ten optimismus přejde...

Vytlačiť článok


© ATLANTIDA Publishing Všechna práva vyhrazena.
Žádna část nesmí být reprodukována nebo jinak šířena bez písemného svolení vydavatele.



Amiga na Vašem PC rychle, snadno a zdarma!


none

AMIGA REVIEW

57 ( 11-12 / 2000 )
56 ( 9-10 / 2000 )
55 ( 7-8 / 2000 )
54 ( 5-6 / 2000 )
53 ( 3-4 / 2000 )
52 ( 1-2 / 2000 )
 
51 ( 12 / 1999 )
50 ( 11 / 1999 )
49 ( 10 / 1999 )
48 ( 9 / 1999 )
46-47 ( 7-8 / 1999 )
45 ( 6 / 1999 )
44 ( 5 / 1999 )
43 ( 4 / 1999 )
42 ( 3 / 1999 )
41 ( 2 / 1999 )
40 ( 1 / 1999 )
 
39 ( 12 / 1998 )
38 ( 11 / 1998 )
37 ( 10 / 1998 )
36 ( 9 / 1998 )
35 ( x / 1998 )
34 ( x / 1998 )
33 ( 1-2 / 1998 )
 
32 ( 11-12 / 1997 )
31 ( 9-10 / 1997 )
30 ( 7-8 / 1997 )
29 ( 6 / 1997 )
28 ( 5 / 1997 )
27 ( 4 / 1997 )
26 ( 3 / 1997 )
25 ( 2 / 1997 )
24 ( 1 / 1997 )
 
23 ( 12 / 1996 )
22 ( 11 / 1996 )
21 ( 10 / 1996 )
20 ( 9 / 1996 )
18-19 ( 7-8 / 1996 )
17 ( 6 / 1996 )
16 ( 5 / 1996 )
15 ( 4 / 1996 )
14 ( 3 / 1996 )
13 ( 2 / 1996 )
12 ( 1 / 1996 )
 
11 ( 12 / 1995 )
10 ( 11 / 1995 )
9 ( 10 / 1995 )
8 ( 9 / 1995 )
7 ( 7 / 1995 )
6 ( 5 / 1995 )

ATLANTIDA NEWS

5 ( 3 / 1995 )
4 ( 1 / 1995 )
 
3 ( 11 / 1994 )
2 ( 9 / 1994 )
1 ( 7 / 1994 )
0 ( 5 / 1994 )