
      Hello !

  Remélem,     mindenkinek     sikerült
összeállítani  a  demo első verzióját !
Most egy lépéssel továbbmegyünk, kicsit
átalakítjuk     a    copperlistát    és
kibővítjük  a  demot  egy  zenelejátszó
rutinnal.

  A  copperrel  azt  akarjuk megetetni,
hogy a monitor ne egy 320*256-os, hanem
két  320*120-as  képet   rajzoljon   ki
egymás  alatt.   Ezt  a következő módon
érhetjük el:

  -  A  képernyő tetején bekapcsoljuk a
felső képet.  (úgy, mint múltkor)

  -  Várunk amíg az elektronsugár eléri
a képernyő közepét  és  lekapcsoljuk  a
felső képet.

  -   Itt   módosítjuk    a    képernyő
regisztereket    (új     szinek,     új
bittérképcímek  esetleg   új  felbontás
vagy megjelenítési mód)

  - Végül bekapcsoljuk az alsó képet.

  Röviden   leírom,   hogy   mit   kell
változtatni a Copperlistán :  A DIWSTRT
(Display   Window   Start)   függőleges
pozíciója maradjon $2c, de a DIWSTOP-ot
módosítani kell, mert most függőlegesen
nem    256,   hanem   csak   241   sort
használunk,  így  a  DIWSTOP függőleges
pozíciója [($2c+241) and 256]=$1d lesz.
Azért kell and-elni 256-al, mert csak 8
bites  számot tudunk a DIWSTOP-ba írni.
Felvetődhet  az a kérdés is, hogy miért
pont  241  és  nem  240 sort jelenítünk
meg.   Az  igaz, hogy 120+120=240, de a
hardware-nek  idő  kell  arra,  hogy  a
képernyő  regisztereket módosítsa a két
kép  megjelenítése  között, ezért van a
két   kép   között   egy   olyan   sor,
amelyikben nincs megjelenítés.  VIGYÁZZ
!!!   Nem  biztos,  hogy  egy sor ideje
mindig elég erre !  Ebben az esetben is
egyszerű  a  megoldás  :   többet  kell
kihagyni.

  A  többi  regiszter  értéke  maradhat
úgy,  ahogy  a  DD1.0-ban beállítottuk.
Ezután  indíthatjuk  az   első   képet.
Következő  dolgunk,  hogy  megvárjuk  a
képernyő  közepét.   Azt tudjuk, hogy a
felső  kép  0.   sora  a  képernyő  44.
($2c)  pozíciójában  van   (a   DIWSTRT
miatt),  így  a  120.   sor   pozíciója
44+120=164   ($a4).   Erre  a  sorra  a
	WAIT $a4,$01

utasítással várunk.  Itt lekapcsoljuk a
képmegjelenítést :

	MOVE #$0200,BPLCON0,

majd  beállítjuk  az  új  szineket  és
bittérképcímeket.      Végül     ismét
bekapcsoljuk a képmegjelenítést :

	MOVE #$5200,BPLCON0.

Ezzel készen is van az új copperlista.



  Következő   feladat  a   zenelejátszó
rutin    beépítése.     Ilyen    rutint
általában  a  zeneszerkesztő  lemezeken
találsz.    Ezek    a   lejátszók   úgy
működnek,   hogy   rákapcsolódnak   egy
megszakításra,    ez    biztosítja    a
folyamatos  működést.   Ezek  a rutinok
három fő részből állnak :

 - Inicializáló rész
 - Lejátszó rész
 - Leállító rész

Az  inicializáló  részt  a   programunk
elején  kell  hívni,  ez  beállítja   a
hangszer-   adatok  címeit   és   egyéb
adatokat.   Ezek  számunkra   most  nem
fontosak.   A lejtszó részt kell minden
megszakítás   alkalmával    hívni.    A
leállító  részt  pedig  akkor  hívd, ha
kilépsz  a  programból,  vagy  egyéb ok
miatt  le  akarod  állítani  a   zenét.
Ezután már ne hívd a lejátszót !  Tehát
a  program  elejére  valahova  be  kell
szúrni, hogy :

	bsr	mt_init

Ezután  állítsd rá a megszakításvektort
a  lejátszó  részre  :  (Ne felejtsd el
eltárolni az eredeti vektort !)

	move.l	$6c,IntV3
	move.l	#interr,$6c

$6c  a  3.   szintű  megszakításvektor
címe.  A megszakítás rutinja :

interr:	movem.l	d0-d7/a0-a6,-(a7)
	bsr	mt_music
	movem.l	(a7)+,d0-d7/a0-a6
	move.w	#$0070,$dff09c
	rte
IntV3:	dc.l	0

FONTOS   !!!   :   A  regisztereket  az
elején  el  kell  tárolni, majd a végén
elővenni,    és    törölni    kell    a
megszakításkérő   biteket   az   INTREQ
regiszterben.       A       megszakítás
regiszterek  leírását   megtalálod   az
Interrupt-regiszterek cikkben.

  Végül  a   kilépésnél   vissza   kell
állítani  az eredeti megszakításvektort
és hívni kell a leállító részt :

	move.l	IntV3,$6c
	bsr	mt_end

Ahhoz,  hogy  valami zenét játszon ez a
rutin,  be  kell  tölteni  egy  modult,
ennek  a  hosszát  az  mt_data címkénél
állíthatod    be     a     blokkfoglaló
utasításban :

	blk.b	hossz,0

Később  szó  lesz  majd  arról is, hogy
hogyan   lehet   különböző   effekteket
vezérelni  a  zenével,  egyenlőre   azt
javaslom,  ne  bonyolítsuk a programot.
Ezzel  el is készültünk mindazzal, amit
mára beterveztünk.  További sikereket a
demozgatáshoz !

   Hello mindenkinek !

     Readysoft from FI-RE Crew.


  Még egy apróság :

  Rengeteg  levelet  kaptam   különböző
kérésekkel.   Ezekre   nagyon  szívesen
válaszolok   (ha    tudok),  csak  arra
szeretnélek   kérni   benneteket,  hogy
küldjetek               válaszborítékot
(természetesen bélyeggel) !  Köszi.
