'--------------------------------------------  
' ArtioDactyl.Anim3                         '  
'                                           '  
' Development      : Pierre Philippe Launay '
' Code Amos        : Frank Jardillier       '  
' Graphisme Dpaint : Pierre Villette        '  
' Design           : Cathy Lardy            '  
' Musique          : Frédéric Bellec        '
'                                           '  
' Terminée : le vendredi 13 Novembre 1992   '  
'-------------------------------------------'
'  Soutenez directement les auteurs par vos '
'  contributions financières ou morales.    '
'--------------------------------------------  
' ArtioDactyl                               '  
' Pierre Philippe Launay                    '  
' Résidence Les Cottages                    '  
' 83, Rue André Theuriet                    '  
' F63000 Clermont-Ferrand   FRANCE          '  
'--------------------------------------------    
NDP=32+27+1 : Rem 32 ans+27ans+1an 
Dim XM(39),YM(39),DX(39),DY(39)
Dim X(NDP),Y(NDP),Z(NDP),X1(NDP),Y1(NDP)
Dim COUL(15),C2(32)
Dim C(32)
Global XM(),YM(),DX(),DY()
Global C()
Global X(),Y(),Z(),X1(),Y1()
Global COUL(),C2()
Global MAVALEUR$,A$
Global TEMPS,MONTRE
TEMPS=Timer-61*50
Wait Vbl 
While Timer-TEMPS>60*50
   A=Free
   For X=1 To 15
      Erase X
   Next X
   DEMO[NDP]
Wend 
Procedure DEMO[NDP]
   Hide 
   PARLE
   MAIN_CHARGE
   MAIN_ANIM[1]
   
   CHARGE
   
   CHARGE_PLASMA
   MET_PLASMA
   
   STAR_FIELD[0,NDP,160,128,320,256,10,75]
   
   MET_PLUIE[6,256,160,128,42]
   
   PLASMA_CADRE[0,1]
   SCRACH[6,256,160,128,42]
   BRUIT[0,5]
   
   FONDU_DOS
   PLEASE_ABE
   MAIN_ANIM[5]
   
   ABE_GIRAFE
   ABE_IMAGE
   Show 
   ABE_MENU
   Hide 
   MET_BELINO
   BELINO
   
   ABE
   ABE_MODIFIE
End Proc
Procedure INIT_COUL_PLUIE[TYPE]
   '
   For N=1 To 15
      If TYPE=1
         COUL=N
      Else 
         COUL=Rnd(N+N*16+N*256)
      End If 
      Colour N,COUL
   Next N
   '
End Proc
Procedure MET_PLUIE[ECRAN,X,Y,POSX,POSY]
   Screen Open ECRAN,X,Y,4,0
   Screen Display ECRAN,POSX,POSY,X,Y
   Screen Hide ECRAN
   Curs Off 
   Flash Off 
   Cls 0
   '
   Colour 0,0
   Colour 1,$111
   Colour 2,$BBB
   Colour 3,$0
   Colour 4,$333
   '
   PAS=1
   '
   PLUIE[0,320,256,2]
   '
   Screen ECRAN
   '
   For Y1=0 To Y/8
      Randomize(4)
      For X1=0 To X-5 Step PAS
         Ink Rnd(3)+1
         Draw X1,Y1 To X1+PAS,Y1
      Next X1
   Next Y1
   Bob Off 
   For Y=20 To 160 Step 20
      Screen Copy ECRAN,0,0,256,20 To ECRAN,0,Y
      Wait Vbl 
   Next Y
   '
   Screen 0
   Fade 3
   Wait 45
End Proc
Procedure PLUIE[ECRAN,X,Y,TYPE]
   '
   Screen Show ECRAN
   Screen To Front ECRAN
   Screen ECRAN
   '
   Ink 0,0
   Bar 33,24 To 286,183
   Wait 20
   '
   Fade 3,,,,,,,,,,,,,,,,,C2(16),C2(17),C2(18),C2(19),C2(20),C2(21),C2(22),C2(23),C2(24),C2(25),C2(26),C2(27),C2(28),C2(29),C2(30),C2(31)
   Wait 50
   '
   INIT_COUL_PLUIE[TYPE]
   '
   Radian 
   '
   XMAX=X
   AMPLITUDE_Y=100
   PASX=4
   PASY=4
   '
   Dim F#(XMAX)
   '
   For X=0 To XMAX
      F#(X)=Sin(Cos(X+X*Sqr(X)))*AMPLITUDE_Y
   Next X
   '
   COUL=1
   '
   Shift Up 1,1,15,1
   '
   For Y=-AMPLITUDE_Y To AMPLITUDE_Y+256 Step PASY
      For X=33 To 281 Step PASX
         Y1=F#(X)+Y
         If Y1>23 and Y1<(184)
            Plot X+Rnd(5),Y1,COUL
         End If 
      Next X
      Add COUL,1,1 To 15
   Next Y
   Bob 1,90,100,11
   '
End Proc
Procedure INIT_COUL_SCRACH
   '
   Restore COULEURS
   '
   For N=1 To 8
      Read COUL
      Colour N,COUL
   Next N
   '
   COULEURS:
   Data $222,$F00,$AAA,$333,$CCC,$111,$BBB,$777
   '
End Proc
Procedure SCRACH[ECRAN,X,Y,POSX,POSY]
   '
   '
   Screen 0
   Double Buffer 
   '
   Wait 100
   Synchro Off 
   Bob 1,60,-70,11
   Channel 1 To Bob 1
   '
   'A$="" 
   'A$="Debut: Let X=33;Let Y=26;Move 115,0,80;Move -115,135,85;Move 115,0,80;Move -115,-135,25;Jump Debut;"
   '
   Mid$(A$,13,1)="3"
   Amal 1,A$
   '
   A$=""
   '
   Amal On 
   '  
   For N=1 To 600
      Synchro 
      Wait Vbl 
   Next N
   Amal Off 
   Bob 1,180,30,Hrev(11)
   For N=1 To 100
      Synchro 
      Wait Vbl 
   Next N
   Screen Hide 0
   Screen Open 5,320,256,32,0
   Screen Hide 5
   Curs Off 
   Flash Off 
   Cls 0
   Get Palette 0
   Screen Copy 0 To 5
   Ink 0
   Bar 33,24 To 286,183
   Colour 0,0
   Colour 1,$111
   Colour 2,$BBB
   Colour 3,$0
   Colour 4,$333
   Screen Copy 6,0,0,256,160 To 5,33,24
   Screen Close 6
End Proc
Procedure BRUIT[ECRAN1,ECRAN2]
   SENS=0
   For N=1 To 100 Step 20
      Screen Show ECRAN1
      Screen To Front ECRAN1
      Screen ECRAN1
      INIT_COUL_PLUIE[1]
      If SENS
         Shift Up 1,1,14,1
         SENS=0
         Bob 1,160,50,Vrev(11)
         Bell 96
      Else 
         Shift Down 1,1,14,1
         SENS=-1
      End If 
      Wait(101-N)
      Screen Show ECRAN2
      Screen To Front ECRAN2
      Screen ECRAN2
      Colour 1,$111
      Colour 2,$BBB
      Colour 3,$0
      Colour 4,$333
      Shift Up 2,1,4,1
      Noise To 15
      Play 13,0
      Wait N
   Next N
   For N=0 To 100
      HASARD=Rnd(4)
      If HASARD=0
         Bob 5,32+Rnd(135),24+Rnd(137),11
      End If 
      If HASARD=1
         Bob 5,32+Rnd(135),47+Rnd(137),Vrev(11)
      End If 
      If HASARD=2
         Bob 5,152+Rnd(135),24+Rnd(137),Hrev(11)
      End If 
      If HASARD=3
         Bob 5,152+Rnd(135),47+Rnd(137),Rev(11)
      End If 
      Bell 96
      Wait Vbl 
   Next N
   Wait 100
   Noise To 15
   Play 13,0
   Track Stop 
   Wait 100
   
   For X=1 To 200
      Play Rnd(95),1
      Bob 5,32+Rnd(135),50,Vrev(11)
      Bob 5,160,47+Rnd(137),Rev(11)
   Next X
   Shift Off 
   Wait 100
   Set Talk 0,0,200,100
   Say "Oh no ! Oh no !"
   Fade 3
   Shift Off 
   Wait 100
   Cls 0
   Screen Close 0
   Screen Close 5
End Proc
Procedure STAR_FIELD[ECRAN,NDP,CX,CY,X,Y,SPEED,DUREE]
   Ink 0
   Bar 32,24 To 286,183
   For I=1 To NDP
      X(I)=(Rnd(X)-CX)*80
      Y(I)=(Rnd(Y)-CY)*80
      Z(I)=Rnd(200)+1
   Next I
   Fade 3,,,,,,,,,,,,,,,,,C2(16),C2(17),C2(18),C2(19),C2(20),C2(21),C2(22),C2(23),C2(24),C2(25),C2(26),C2(27),C2(28),C2(29),C2(30),C2(31)
   
   For I=1 To 15
      Colour I,Rnd($FFF)
   Next I
   
   For N=1 To DUREE
      For I=1 To NDP
         Add Z(I),-SPEED,3 To 200
         If X1(I)>33
            If X1(I)<286
               If Y1(I)>24 and Y1(I)<(184)
                  Plot X1(I),Y1(I),0
               End If 
            End If 
         End If 
         X1(I)=CX+(X(I)/Z(I))
         Y1(I)=CY+(Y(I)/Z(I))
         If X1(I)>33
            If X1(I)<(286)
               If Y1(I)>24 and Y1(I)<(184)
                  Plot X1(I),Y1(I),Rnd(14)+1
               End If 
            End If 
         End If 
      Next I
   Next N
   Fade 15,,,0
   For N=1 To 20
      For I=1 To NDP
         Add Z(I),-SPEED,3 To 200
         If(X1(I)>33 and X1(I)<(286)) and(Y1(I)>24 and Y1(I)<(184))
            Plot X1(I),Y1(I),0
         End If 
         X1(I)=CX+(X(I)/Z(I))
         Y1(I)=CY+(Y(I)/Z(I))
         If(X1(I)>33 and X1(I)<(286)) and(Y1(I)>24 and Y1(I)<(184))
            Plot X1(I),Y1(I),2
         End If 
      Next I
   Next N
End Proc
Procedure PLASMA_CADRE[ECRAN,TYPE]
   '
   Screen ECRAN
   Screen Hide ECRAN
   '
   Ink 0,0
   Bar 33,24 To 286,183
   '
   '
   Screen Show ECRAN
   Screen To Front ECRAN
   Screen ECRAN
   '
   Fade 3,,,,,,,,,,,,,,,,,C2(16),C2(17),C2(18),C2(19),C2(20),C2(21),C2(22),C2(23),C2(24),C2(25),C2(26),C2(27),C2(28),C2(29),C2(30),C2(31)
   'Wait 50 
   '
   INIT_COUL_PLUIE[1]
   '
   Shift Up 2,1,14,1
   '
   COUL=0
   For X=1 To 79
      Add COUL,1,1 To 14
      Ink COUL
      Bar X+33,X+24 To 286-X,184-X
   Next X
   '
   COUL=15
   For X=1 To 24
      Add COUL,-1,1 To 14
      Ink COUL
      Bar X+33,X+24 To 83-X,74-X
      Bar 236+X,X+134 To 286-X,184-X
      Bar 236+X,X+24 To 286-X,74-X
      Bar X+33,134+X To 83-X,184-X
   Next X
End Proc
Procedure MET_PLASMA
   Screen Show 7 : Rem apparition du plasma et du moniteur  
   Screen To Front 7
   Screen 7
   Fade 3,,,,,,,,,,,,,,,,,C2(16),C2(17),C2(18),C2(19),C2(20),C2(21),C2(22),C2(23),C2(24),C2(25),C2(26),C2(27),C2(28),C2(29),C2(30),C2(31)
   Wait 50
   Fade 3,C2(0),C2(1),C2(2),C2(3),C2(4),C2(5),C2(6),C2(7),C2(8),C2(9),C2(10),C2(11),C2(12),C2(13),C2(14),C2(15),,,,,,,,,,,,,,,,
   Wait 50
   Track Play 15 : Rem on joue de la musique    
   Shift Up 1,1,15,1
   Wait Vbl 
   Wait 100
   A$="" : Rem animation de "demo-niak" 
   A$="For R0=1 To 2;Let X=33;Let Y=25;Move 136,0,80;Move -136,135,85;Move 136,0,80;Move -136,-135,25;Next R0;Let RA=-1;"
   Synchro Off 
   Bob 11,33,25,11
   Channel 1 To Bob 11
   Amal 1,A$
   Amal On 
   Repeat 
      Synchro 
      Wait Vbl 
   Until Amreg(0)=-1
   Bob Off 
   Amal Off 
   
   
   Unpack 7 To 0
   Shift Off 
   Fade 1,,,,,,,,,,,,,,,,,C2(16),C2(17),C2(18),C2(19),C2(20),C2(21),C2(22),C2(23),C2(24),C2(25),C2(26),C2(27),C2(28),C2(29),C2(30),C2(31)
   Wait 15
   Screen Close 7
   Screen Close 1
   Erase 7
End Proc
Procedure CHARGE_PLASMA
   BANQUE_CHARGE[":IMAGES/plasma.iff",7]
   
   Unpack 7 To 7
   
   Screen Hide 7
   Double Buffer 
   Screen 7
   For N=0 To 31
      C2(N)=Colour(N)
   Next N
   BANQUE_CHARGE[":IMAGES/demo_logo.iff",6]
   Unpack 6 To 6
   Screen Hide 6
   Get Bob 11,0,0 To 119,23
   Screen Close 6
   Erase 6
   Fade 3
   Wait 50
End Proc
Procedure BANQUE_CHARGE[IMAGE$,BANQUE]
   Open In 1,IMAGE$
   LONGUEUR=Lof(1)
   Close 1
   Reserve As Data BANQUE,LONGUEUR
   Bload IMAGE$,BANQUE
End Proc
Procedure MAIN_CHARGE
   BANQUE_CHARGE[":IMAGES/hand.iff",5]
   Screen Open 0,640,256,8,Hires
   Unpack 5 To 0
   '   Load Iff ":IMAGES/hand.iff",0
   Screen Hide 0
   Erase 5
   For N=0 To 15
      COUL(N)=Colour(N)
   Next N
   '------ Animation de la main pour la démo
   N=1
   For X=0 To 384 Step 128
      Get Bob N,X,0 To X+128,64
      Inc N
   Next X
   Ink 0,0
   '------ Animation de la main pour ABE
   For X=0 To 384 Step 128
      Get Bob N,X,64 To X+128,128
      Inc N
   Next X
   '
   Cls 0
   Screen Show 0
End Proc
Procedure MAIN_ANIM[MAIN]
   Screen 0
   Synchro Off 
   '
   If MAIN=1
      Double Buffer 
      B$="A 1,(1,10)(2,7)(3,3)(4,10)"
   Else 
      B$="Let R0=10;A 1,(5,R0)(6,R0)(7,R0)(8,R0)(9,R0)"
   End If 
   Bob 1,256,96,MAIN
   '
   Wait 150
   '
   Channel 1 To Bob 1
   Amal 1,B$
   Amal On 
   '
   Repeat 
      Synchro 
      Wait Vbl 
   Until Chanan(1)=0
   Bob Off 
End Proc
Procedure ABE_MENU
   MET_MENU[2]
   MET_CACHE[1]
   POSE_CACHE[0,66,201,1]
   Screen Close 1
   Wait 100
   Hide 
   _ANIM_MENU[0,0,1,8]
   Show 
   Wait 100
   Show 
   Wait Vbl 
   Show 
   _ANIM_MENU[0,10,1,8]
   Wait 100
   Shoot 
   _ANIM_MENU[0,10,5,6]
End Proc
Procedure MET_MENU[ECRAN]
   Flash Off 
   Curs Off 
   Restore _REDONNEES
   For N=1 To 8
      Read NOMBRE,X,Y,DX,DY,FOND,COUL1,COUL2
      Add DX,X
      Add DY,Y
      CADRE[X,Y,DX,DY,FOND,COUL1,COUL2]
      Ink COUL2,FOND
      For I=1 To NOMBRE
         Read B$
         If Len(B$)<(X-DX)/8-2
            B$=B$+Space$((X-DX)/8-2-Len(B$))
         End If 
         Text X+8,I*10+Y-2,B$
      Next I
      XM(N)=X
      YM(N)=Y
      Get Bob N,X,Y To DX+1,DY+1
   Next N
   Ink 1
   Bar 0,0 To 128,10
   Get Bob 9,0,0 To 128,10
   Screen Close 0
   Unpack 4 To 0
   Screen Hide 0
   Double Buffer 
   
   _REDONNEES:
   Data 1,0,0,639,12,4,2,3
   Data "Project      Editor      Blocks    Help   Hide   User1    User2    User3"
   Data 7,1,12,136,70,4,2,3
   Data "New","Load As...","Save","Save As...","Print","Who What Which","Quit"
   Data 4,104,12,136,40,4,2,3
   Data "SuperList","Disk Manager","------------","Selector      »"
   Data 7,240,44,136,70,4,2,3
   Data "Header Block","Protection","Data Len","Date","------------","All","Nothing"
   Data 4,200,12,136,40,4,2,3
   Data "Boot      0","Root    800","Belinogram   »","Structure    »"
   Data 4,330,33,136,40,4,2,3
   Data "Selected","Olympic","Complet","BitMap     1758"
   Data 5,330,44,136,50,4,2,3
   Data "First       327","Before      887","Parent      510","After       889","Last        921"
   Data 10,276,12,136,100,4,2,3
   Data "Calculator","Iconize","Search","Screen Mode   »","Help","Example","Palette","Sound Effect  »","WorkBench     »","Preferences   »"
End Proc
Procedure _ANIM_MENU[ABE_ECRAN,V,DEBUT,FIN]
   Screen ABE_ECRAN
   Bob 35,0,0,1
   Restore MENU
   For N=1 To FIN
      Read IMAGE,VITESSE,HAUTEUR
      Bob 3,XM(IMAGE)+4,2-10,9
      If IMAGE=4
         Bob 2,XM(3),YM(3),3
         If VITESSE>0
            Bob 3,XM(3)+4,YM(4)-3,9
            Wait 10
         End If 
      End If 
      If IMAGE=5 or IMAGE=8
         Bob 2,XM(IMAGE),YM(IMAGE),IMAGE
      End If 
      If IMAGE=6 or IMAGE=7
         Bob 2,XM(5),YM(5),5
         If VITESSE>0
            Bob 3,XM(5)+4,YM(IMAGE),9
            Wait 10
         End If 
      End If 
      Bob 1,XM(IMAGE),YM(IMAGE),IMAGE
      Bell 95
      If VITESSE>0 and DEBUT<=N
         If DEBUT=5 and N=5
            Add HAUTEUR,-12
         End If 
         If DEBUT=5 and N=6
            FINMENU=True
            HAUTEUR=12
            Bob 3,XM(5)+4,YM(6),9
            YM(6)=YM(6)+2
            Wait 10
         End If 
         For Y=YM(IMAGE) To YM(IMAGE)+HAUTEUR-12 Step 10
            MOVE[XM(IMAGE),Y]
            Bob 3,XM(IMAGE)+4,Y,9
            Wait 10
         Next Y
      End If 
      Wait Vbl 
   Next N
   If VITESSE=0
      Wait 50
      Say "Yeah!"
   End If 
   If FINMENU=True
      Shoot 
      Wait 200
   Else 
      Bob Off 1
      Bob Off 2
      Bob Off 3
   End If 
   MENU:
   Data 1,V,12
   Data 2,V,80
   Data 3,V,50
   Data 4,V,80
   Data 5,V,50
   Data 6,V,50
   Data 7,V,60
   Data 8,V,110
End Proc
Procedure PARLE
   Set Talk 1,1,70,100
   Say "Art the o Dac tyl presents"
   Set Talk 1,0,80,100
   Say "A B E!  2!"
End Proc
Procedure CHARGE
   If ECRAN0=True
      Track Stop 
   End If 
   
   BANQUE_CHARGE[":IMAGES/volumacker.iff",4]
   Unpack 4 To 1
   Screen Close 0
   _LOADING
   Track Load ":MODULES/mod.funny-road",15 : Rem charge la musique    
   CHARGE_PLASMA
End Proc
Procedure _LOADING
   Screen 1 : Rem image "chargement en cours"
   Ink 8,1
   Flash 1,"(F00,3)(FFF,3)"
   Wait 20
   CADRE[260,57,417,110,8,10,14]
   Gr Writing 0
   Ink 0
   Text 301,82,"DEMO-NIAK"
   Text 269,106,"Loading in memory"
   Ink 2
   Text 302,83,"DEMO-NIAK"
   Text 269,106,"Loading in memory"
   Ink 15
   Text 303,84,"DEMO-NIAK"
   Ink 2,8
   Text 269,106,"Loading in memory"
   Flash Off 
   Colour 1,$FFF
End Proc
Procedure PLEASE_ABE
   CADRE[260,57,417,110,0,10,14]
   Ink 15,0
   Text 316,77,"Please"
   Text 284,87,"Insert  A.B.E."
   Wait 150
   Ink 7,0
   Text 304,100,"To RESCUE"
   Wait 100
   Fade 1
   Screen Open 0,640,200,16,Hires
   Screen Hide 0
   Flash Off 
   Curs Off 
   Cls 0
   For N=0 To 15
      Colour N,COUL(N)
   Next N
   Double Buffer 
   Synchro Off 
   Screen Close 1
   Screen Show 
End Proc
Procedure ABE_GIRAFE
   BANQUE_CHARGE[":IMAGES/abe_mascot.iff",4]
   Unpack 4 To 1
   Erase 4
   Hide 
   Screen Close 0
   Screen Show 1
   Fade 4,0,$EAA,$D99,$B77,$966,$744,$EC6,$DB5,$B93,$FFF,$8CC,$6AA,$488,$C44,$B33,$911
   Wait 60
End Proc
Procedure ABE_IMAGE
   BANQUE_CHARGE[":IMAGES/abe_block.iff",4]
   Unpack 4 To 0
   Screen Hide 0
   Screen To Front 1
   For N=16 To 31
      C(N)=Colour(N-16)
   Next N
   Double Buffer 
End Proc
Procedure FONDU_DOS
   Unpack 4 To 1
   Screen 1 : Rem fondu sur dos
   'Fade 1
   Wait 30
   Screen Show 1
   Fade 4,$0,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888,$777,$666,$555,$444,$333,$222,$111
   Wait 60
   Fade 3,$0,$FFF,$FEE,$FDD,$FCC,$FBB,$FAA,$F99,$F88,$F77,$F66,$F55,$F44,$F33,$F22,$F11
End Proc
Procedure MET_CACHE[IMAGE]
   '
   BANQUE_CHARGE[":IMAGES/abe_cache.iff",7]
   Screen Open 7,130,10,8,Hires
   '   Load Iff ":IMAGES/abe_cache.iff",7 
   Screen Hide 7
   Unpack 7 To 7
   Screen 7
   Screen Copy 7,0,0,64,8 To 7,66,0
   Screen Copy 7,0,0,130,8 To 7,0,9
   Get Icon IMAGE,0,0 To 128,10
   Make Icon Mask IMAGE
   Screen Close 7
   Erase 7
   '
End Proc
Procedure MET_BELINO
   Cls 1
   Colour 5,$500
   Flash 0,"(000,2)(F00,2)"
   CADRE[10,20,630,250,5,3,2]
   Ink 3,1
   Text 200,100," Check Volume with Belinogram "
   Wait 100
   Erase 4

   
   BANQUE_CHARGE[":IMAGES/abe_belinogram.iff",5]
   Unpack 5 To 1
   Screen Hide 1

   Screen 1
   'Get Icon 2,74,63 To 554,253 
   Get Icon 3,280,110 To 350,145
   Ink 0,0
   Bar 74,63 To 554,73
   CADRE[74,139,554,149,5,3,2]
   Ink 5
   Bar 75,76 To 553,136
   Bar 75,152 To 553,210
   Ink 0
   For X=75 To 553 Step 6
      Draw X,76 To X,136
      Draw X,152 To X,210
   Next X
   For Y=76 To 136 Step 6
      Draw 75,Y To 553,Y
   Next Y
   For Y=152 To 210 Step 6
      Draw 75,Y To 553,Y
   Next Y
   Ink 1
   Draw 75,136 To 553,136
   N=10
   Ink 0
   Bar 74,63 To 554,73
   Show 
   Screen Close 0
End Proc
Procedure POSE_CACHE[ABE_ECRAN,YSTART,YEND,IMAGE]
   '
   N=0
   Screen ABE_ECRAN
   '
   For Y=YSTART To 201 Step 9
      For X=55 To 516 Step 132
         Inc N
         Paste Icon X,Y,IMAGE
      Next X
   Next Y
   Screen Show ABE_ECRAN
   '
End Proc
Procedure BELINO
   '
   Screen Show 1
   Screen 1
   Ink 6,5
   Text 90,147,"B  E  L  I  N  O  G  R  A  M"
   Ink 6
   N=0
   Wait 100
   For X=75 To 553 Step 1 : Rem1 
      Draw X,141 To X,147
      Bell 60+X/20
   Next X
   
   Ink 0
   Bar 74,139 To 554,149
   'Paste Icon 74,63,2
   Unpack 5 To 1
End Proc
Procedure ENTRER[IMAGE,ECRAN,MAVALEUR$,A$]
   '
   Screen Open ECRAN,320,160,16,Hires
   Screen Hide ECRAN
   Curs Off 
   Flash Off 
   Cls 0
   Get Palette 0
   '
   CADRE[10,10,116,58,4,2,3]
   CADRE[18,23,98,33,6,2,3]
   ECRIT[18,21,3,4,A$]
   ECRIT[97-Len(A$)*8,31,3,7,A$]
   If MAVALEUR$="  T H E "
      ECRIT[15,52,3,4,"Ascii"]
   Else 
      ECRIT[15,52,3,4,"HexaDecimal"]
   End If 
   Get Bob IMAGE,10,10 To 117,59
   '
   Screen Close ECRAN
   '
End Proc
Procedure CADRE[X1,Y1,X2,Y2,COUL,COUL1,COUL2]
   Ink COUL
   Bar X1,Y1 To X2,Y2
   Ink COUL1
   Draw X1,Y1 To X2,Y1
   Draw X1,Y1 To X1,Y2
   Ink COUL2
   Draw X2,Y1 To X2,Y2
   Draw X1,Y2 To X2,Y2
End Proc
Procedure ECRIT[X1,Y1,ENCRE,PAPIER,A$]
   Ink ENCRE,PAPIER
   Text X1,Y1,A$
End Proc
Procedure _POINTEUR[X,Y,IMAGE]
   '
   MOVE[X+10,Y+15]
   '
   Wait 50
   '
   Bob 11,X,Y,IMAGE
   Add X,24
   Add Y,21
   MOVE[X,Y+23]
   Wait 50
   Shoot 
   ECRIT[X,Y,1,6,MAVALEUR$]
   '
   Wait 150
   '
   Bob Off 11
   '
End Proc
Procedure MOVE[X,Y]
   '
   XM=X Screen(X Mouse)
   YM=Y Screen(Y Mouse)
   '
   If X<XM
      PASX=-3
   Else 
      PASX=3
   End If 
   If Y<YM
      PASY=-2
   Else 
      PASY=2
   End If 
   For X1=XM To X Step PASX
      X Mouse=X Hard(X1)
      'Y Mouse=Y Mouse 
      Wait Vbl 
   Next X1
   '
   For Y1=YM To Y Step PASY
      'X Mouse=X Mouse 
      Y Mouse=Y Hard(Y1)
      Wait Vbl 
   Next Y1
   '
End Proc
Procedure COUL_SOURIS
   Colour 17,$EC8
   Colour 18,$C60
   Colour 19,$EA0
End Proc
Procedure MUSIQUE[ECRAN_ABE,BANQUE]
   '
   Screen ECRAN_ABE
   Screen Show ECRAN_ABE
   Screen To Front ECRAN_ABE
   MOVE[250,148]
   _POINTEUR[242,114,2]
   MONTRE=1
   Track Load ":MODULES/mod.funny-road",15 : Rem charge la musique    
   Track Play 15
   Track Loop On 
   Wait 5
   Ink 6,4
   Text 252,128+8,"      63"
End Proc
Procedure MONTRE_ABE[ECRAN_ABE,ECRANS,ECRANC]
   If DEJA5=False
      DEJA5=True
      BANQUE_CHARGE[":IMAGES/montre.iff",5]
      Unpack 5 To ECRANS
      Screen Hide ECRANS
      Hide 
      Screen Display ECRANS,192,42,364,256
      For N=0 To 15
         C(N)=Colour(N)
      Next N
      Fade 1
      Wait 15
      '
      Screen ECRAN_ABE
      Hide 
      Fade 3
      Wait 50
      '
      Screen Show ECRANS
      Screen To Front ECRANS
      Screen ECRANS
      Fade 3,C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7),C(8),C(9),C(10),C(11),C(12),C(13),C(14),C(15)
   Else 
      Screen ECRAN_ABE
   End If 
End Proc
Procedure MONTRE_TEXTE
   If MONTRE>=0
      Ink 0,1
      Text 335,73,"     0"
   End If 
   If MONTRE>0
      Ink 6,4
      Text 252,136,"      63"
   End If 
   If MONTRE>1
      Ink 5,4
      Text 253,81,"02800100"
   End If 
   If MONTRE>2
      Text 185,91,"40401025"
   End If 
End Proc
Procedure MONTRE_NORMAL[ECRAN_ABE,ECRANS,ECRANC]
   MONTRE_ABE[ECRAN_ABE,ECRANS,ECRANC]
   MONTRE=0
   Ink 1,0
   Text 20,222," Before Modification:  "
   Text 20,230,"  L = 352              "
   Text 20,238,"  H = 256              "
   Wait 200
   Fade 3
   Wait 50
   Screen Hide ECRANS
   Fade 1,C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7),C(8),C(9),C(10),C(11),C(12),C(13),C(14),C(15)
   Wait 15
   Screen ECRAN_ABE
   Screen Show ECRAN_ABE
   Fade 3,C(16),C(17),C(18),C(19),C(20),C(21),C(22),C(23),C(24),C(25),C(26),C(27),C(28),C(29),C(30),C(31)
   COUL_SOURIS
   Wait 50
   Screen Close ECRANS
End Proc
Procedure MONTRE_MODIFIE[ECRAN_ABE,ECRANS,ECRANC]
   MONTRE=2
   MONTRE_ABE[ECRAN_ABE,ECRANS,ECRANC]
   Ink 1,0
   Text 20,222," Modification:     "
   Text 20,230,"  L = 328  to  640 "
   Text 20,238,"  H = 256  to  128 "
   Screen Open ECRANC,640,128,16,Hires
   Screen Hide ECRANC
   Screen Display ECRANC,128,106,364,256
   Curs Off 
   Flash Off 
   Cls 0
   For N=0 To 15
      Colour N,C(N)
   Next N
   Zoom ECRANS,0,0,352,256 To ECRANC,0,0,640,128
   Screen ECRANC
   Fade 1
   '
   Screen ECRAN_ABE
   Fade 3
   Wait 45
   Screen Hide ECRAN_ABE
   '
   Screen ECRANC
   Screen Show ECRANC
   Screen To Front ECRANC
   Fade 3,C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7),C(8),C(9),C(10),C(11),C(12),C(13),C(14),C(15)
   Wait 100
   Screen ECRAN_ABE
   Screen Show ECRAN_ABE
   Show 
   Fade 3,C(16),C(17),C(18),C(19),C(20),C(21),C(22),C(23),C(24),C(25),C(26),C(27),C(28),C(29),C(30),C(31)
   COUL_SOURIS
   Wait 100
End Proc
Procedure MONTRE_COULEUR[ECRAN_ABE,ECRANS,ECRANC]
   Hide 
   MONTRE=3
   
   Unpack 5 To ECRANS
   Ink 1,0
   Text 20,222," Modification :           "
   ' Text 20,230,"  L = 328  to  640        " 
   ' Text 20,238,"  H = 256  to  128        " 
   Text 20,230,"  Enhancements of colors! "
   Screen Show ECRANS
   Screen Open ECRANC,640,256,16,Hires
   Screen Hide ECRANC
   Screen Display ECRANC,190,50,570,256
   Curs Off 
   Flash Off 
   Cls 0
   For N=0 To 15
      Colour N,C(N)
   Next N
   Ink 1,0
   Zoom ECRANS,0,10,280,256 To ECRANC,190,10,570,256
   Show 
   Screen ECRANC
   Screen To Front ECRANS
   Fade 1
   Screen ECRAN_ABE
   Fade 3
   Wait 45
   Screen Hide ECRAN_ABE
   '
   Screen ECRANC
   Screen Show ECRANC
   Screen To Front ECRANC
   Fade 3,C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7),C(8),C(9),C(10),C(11),C(12),C(13),C(14),C(15)
   For X=0 To 7
      Colour X,C(X) or $F00
   Next X
   Wait 100
   Screen Hide 0
   Unpack 4 To 0
   Screen Hide 0
   ECRAN_CACHE[0,1]
   For X=1 To 200
      Screen To Front 1
      Wait Vbl 
      Wait 10
      Screen To Front 2
      Wait Vbl 
      Wait 10
   Next X
   Screen ECRANC
   Fade 3
   Wait 50
   Screen Close ECRANC
   Screen Close ECRANS
   Screen Show 0
   Screen To Front 0
   COUL_SOURIS
End Proc
Procedure ECRAN_CACHE[ECRAN_ABE,IMAGE]
   N=0
   Screen ECRAN_ABE
   For Y=66 To 138 Step 9
      For X=54 To 516 Step 132
         Inc N
         Paste Icon X,Y,IMAGE
      Next X
   Next Y
End Proc
Procedure ABE
   Flash 0,"(f00,1)(668,1)(f00,1)(668,1)(f00,1)(668,1)(f00,1)(668,1)"
   Wait 10
   MOVE[300+Rnd(100),180]
   MOVE[250+Rnd(50),100]
   MOVE[316,125]
   Wait 100
   Flash Off 
   Colour 0,$668
   Cls 4
   CADRE[10,10,630,250,5,3,2]
   Ink 3,1
   Text 180,70," Go to Block even with click of Mouse Pointer "
   Ink 4
   Text 180,78,"                                              "
   Text 180,86," Here, Go to Red Block 888 from Belinogram    "
   Text 180,94," (The red color indicates an error)           "
   Paste Icon 280,110,3
   MOVE[330,125]
   Screen To Front 1
   Wait 400
   MONTRE=-1
   'Erase 1 
   'Erase 2 
   BANQUE_CHARGE[":IMAGES/abe_block.iff",4]
   Unpack 4 To 0
   ABE_PRECHARGE
End Proc
Procedure ABE_PRECHARGE
   Screen Hide 0
   Screen 0
   Unpack 4 To 0
   Screen Hide 0
   MONTRE_TEXTE
   Show 
   POSE_CACHE[0,138,201,1]
   Screen Show 0
   Screen To Front 0
End Proc
Procedure ABE_CHARGE
   Unpack 4 To 0
   Screen Hide 0
   Show 
   Screen 0
   ECRAN_CACHE[0,1]
   Screen Show 0
   Screen To Front 0
End Proc
Procedure ABE_MODIFIE
   Wait 100
   ENTRER[2,1,"       0","Next 2"]
   _POINTEUR[310,52,2]
   Wait 5
   Ink 0,1
   Text 335,73,"     0"
   MOVE[200,48]
   ENTRER[2,1,"     $3F","Play $10"]
   Erase 15
   MUSIQUE[0,15]
   MOVE[320,100]
   Wait 200
   MONTRE_NORMAL[0,1,2]
   Screen 0
   Show 
   MOVE[150,50]
   MOVE[250,50]
   Get Icon 3,110,60 To 330,87
   ENTRER[2,1,"02800100","352x256"]
   _POINTEUR[245,59,2]
   Wait 5
   Ink 5,4
   Text 253,81,"02800100"
   Wait 50
   Cls 4
   CADRE[10,10,630,250,5,3,2]
   Ink 3,1
   Text 150,120," Modification :    Chunk BMHD (Bit Map HeaDer) "
   Ink 4
   Text 150,128,"                                               "
   Text 150,136," Here, $0160 0200  to  $0280 0100              "
   Text 150,144,"        (352x256)       (640x128)              "
   Paste Icon 110,60,3
   Wait 400
   MONTRE_MODIFIE[0,1,2]
   ABE_PRECHARGE
   Screen Close 1
   Screen Close 2
   Show 
   Wait 200
   
   MOVE[100,30]
   MOVE[181,60]
   Get Icon 3,42,70 To 262,97
   ENTRER[2,1,"40401025","80809050"]
   _POINTEUR[186,69,2]
   Wait 5
   Ink 5,4
   Text 185,91,"40401025"
   Wait 50
   Cls 4
   CADRE[10,10,630,250,5,3,2]
   Paste Icon 42,50,3
   Ink 3,1
   Text 150,100," Modification :    Chunk CMAP (Color MAP) "
   Ink 4
   Text 150,108,"                                          "
   Text 150,116," Here, 808 090 50  to  404 010 25         "
   Text 150,124,"       (Format Red/Green/Blue)            "
   MOVE[160,125]
   Wait 500
   MONTRE_COULEUR[0,1,2]
   Show 
   Wait 500
   MOVE[280,122]
   MOVE[314,122]
   ENTRER[2,1,"  T H E ","Text  AN"]
   _POINTEUR[319,131,2]
   Wait 5
   Ink 1,3
   Text 318,154,"   T H E"
   MOVE[350,122]
   MOVE[314,122]
   MOVE[50,10]
   Wait 200
   Cls 4
   Hide 
   CADRE[10,10,630,250,5,3,2]
   Text 200,100,"AND NOW..."
   Wait Vbl 
   Wait 200
   Wait Vbl 
   Fade 5
   Erase 1
   Erase 2
   Erase 4
   Erase 5
   BANQUE_CHARGE[":IMAGES/humanoide.iff",4]
   Unpack 4 To 0
   Hide 
   Wait Vbl 
   Erase 4
   Wait 50
   Track Load ":MODULES/mod.lovely",14
   Bank Swap 14,15
   Track Play 15
   Erase 14
   Hide 
   TEMPS=Timer
   Repeat 
   Until(Mouse Key<>0) or(Inkey$<>"") or Timer-TEMPS>60*50*3
   ECRAN0=True
End Proc
'
