home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
101-125
/
apd124
/
positron.amos
/
positron.amosSourceCode
< prev
Wrap
AMOS Source Code
|
1990-09-27
|
25KB
|
976 lines
'-----------------------------------
'---- B O B S D E M O -------------
'-----------------------------------
'---- V 1.2 ---------------------
'-----------------------------------
'---- Programming by : BLUE MAX ----
'---- Picture by : C-DRYK ----
'---- Music by : SCOTT ----
'---- Math by : HOMUK ----
'-----------------------------------
'---- A Positron Release 5/1/91 ----
'---- (C)opyright 1991 DEMONS ----
'-----------------------------------
Hide
Led Off
Close Editor
Close Workbench
Global DRIV$,BO$,BO2$,BO3$,SCR,NBS,Z#,CONT,TP
Dim X(50),Y(50)
Dim TAX(190),TAY(190)
Global X(),Y(),TAX(),TAY()
Z#=1 : TP=16
INITIAL
TEX
'------------------------------
Procedure INITIAL
DRIV$="df0:"
BO5$=DRIV$+"bold.abk"
ALL$=DRIV$+"Sprites.abk"
Load ALL$
NBS=5
Fade 5 : Wait 5*15
Screen 0 : Cls 0
Screen Close 1
End Proc
Procedure INF1[CL]
DG=2
T#=0
OP=10 : TU=0
For K=0 To 38 : TAX(K)=0 : TAY(K)=0 : Next K
LMT[0]
On CL Gosub ITA,ITB,ITC
Repeat
Inc S : If S=NBS Then S=0 : Add TU,NBS : If TU=(NBS*NBB) Then TU=0
Screen To Front S : Screen S
TAX(CO)=X : TAY(CO)=Y
Inc CO : If NP>=NBB-2 Then Paste Bob TAX(S+TU),TAY(S+TU),G+1 : If CO=NBS*NBB Then CO=0
On CL Gosub CALCA,CALCB,CALCC
Inc NP
Paste Bob X,Y,G : Wait Vbl
Until Mouse Key
Fade 2
Wait 30
For K=0 To 38 : TAX(K)=0 : TAY(K)=0 : Next K
For K=0 To NBS : Screen K : Ink 0 : Bar 0,0 To 320,256 : Next K : If CONT=1 Then Screen S : Fade 1 To S+1 : Wait 15
T#=0 : TU=0 : S=0 : CO=0 : NP=0 : CT=0
Goto FIND
'Twin circle limited
ITA:
NBB=38 : P#=0.03
Q=0 : G=7
Return
CALCA:
A#=2*Abs(Sin(T#+T#/22))
X=150+50*Cos(T#)*A#
Y=124+50*Sin(T#)*A#
T#=T#+P#
Return
'Treffle / 4 boucles limited
ITB:
NBB=10 : P#=0.03
Q=0 : G=7
Return
CALCB:
A#=2*Cos(2*T#-Cos(T#/30+T#/30))
X=150+50*Cos(T#)*A#
Y=124+50*Sin(T#)*A#
T#=T#+P#
Return
' classic
ITC:
T#=0 : G=11
OP=100 : TU=0
NBB=2
P#=0.04 : Q=0
R=2 : QS=3
Return
CALCC:
A#=50+50*Sin(T#/OP)
X=150+A#*Sin(T#*R)*1.5
Y=100+A#*Cos(T#*QS)
T#=T#+P#
Return
FIND:
End Proc
Procedure INF0[CL,AN]
LONG=4 : DG=2
T#=0
OP=10 : TU=0
CO1=$124 : CO2=$135 : CO3=$468 : D=$111
On CL Gosub IT1B,IT2,IT2C,IT3,IT4,IT5,IT6,IT7,IT8,IT9
LMT[1]
Repeat
Inc S : If S=NBS Then S=0 : Add TU,NBS : If TU=(NBS*NBB) Then TU=0
Screen To Front S : Screen S
On CL Gosub CALC1B,CALC2,CALC2C,CALC3,CALC4,CALC5,CALC6,CALC7,CALC8,CALC9
If AN=1 Then Inc TEMP : If TEMP=LONG Then TEMP=0 : G=G+DG : If G>11 or G<5 Then DG=-DG
Inc NP
If NP>=MXB and KLIK<=NBS
Add POL,1,1 To 8
If POL=8
D=CO1-273 : If D>273
D=273
End If
CO1=CO1-D
D=CO2-273 : If D>273
D=273
End If
CO2=CO2-D
D=CO3-273 : If D>273
D=273
End If
CO3=CO3-D
End If
Palette ,CO1,CO2,,CO3 : Inc CT : Add KLIK,1,0 To NBS
If CT>=NBS*8
Palette ,$0,$0,,$0
If CT>=NBS*10
KLIK=NBS+1
End If
End If
End If
Paste Bob X,Y,G : Wait Vbl
Until Mouse Key
Fade 2
Wait 30
For K=0 To NBS : Screen K : Ink 0 : Bar 0,0 To 320,256 : Next K : If CONT=1 Then Screen S : Fade 1 To S+1 : Wait 15
T#=0 : TU=0 : S=0 : CO=0 : NP=0 : KLIK=0 : MXB=0 : CT=0
Goto FINS
'Twin circle illimited
IT1B:
NBB=0 : P#=0.03
MXB=350 : Q=1 : G=9
Return
CALC1B:
A#=2*Abs(Sin(T#+T#/22))
X=150+50*Cos(T#)*A#
Y=124+50*Sin(T#)*A#
T#=T#+P#
Return
'2 boucles
IT2:
NBB=0 : P#=0.03
Q=1 : MXB=300 : G=7
Return
CALC2:
A#=2*Abs(Sin(T#+T#/30))
X=150+50*Cos(T#)*A#*Sin(Abs(T#))
Y=124+50*Sin(T#)*A#
T#=T#+P#
Return
'Treffle / 4 boucle illimited
IT2C:
NBB=0 : P#=0.02
Q=1 : MXB=500 : G=7
Return
CALC2C:
A#=2*Cos(2*T#-Cos(T#/30+T#/20))
X=150+50*Cos(T#)*A#
Y=124+50*Sin(T#)*A#
T#=T#+P#
Return
'Double boucle en bas
IT3:
NBB=0 : P#=0.02
Q=1 : MXB=300 : G=7
Return
CALC3:
A#=2*Sin(T#+T#/30)
X=150+50*Cos(T#)*A#*Cos(Abs(T#))
Y=100+50*Sin(T#)*A#
T#=T#+P#
Return
' Fleur infinie
IT4:
NBB=0 : P#=0.02
Q=1 : MXB=350 : G=9
Return
CALC4:
A#=2*Sin(T#+T#/4)
X=150+50*Cos(T#)*A#*Cos(Abs(T#))
Y=124+50*Sin(T#)*A#
T#=T#+P#
Return
'2 coeurs
IT5:
NBB=0 : P#=0.02
Q=1 : MXB=450 : G=5
Return
CALC5:
A#=2*Cos(2*T#+T#/16)-Abs(Sin(2*T#+T#/16))
X=150+50*Cos(T#)*A#
Y=124+50*Sin(T#)*A#
T#=T#+P#
Return
' Bag
IT6:
NBB=0 : P#=0.04
Q=1 : MXB=300 : G=5
Return
CALC6:
X=150+Sin(T#)*(10+70*Sin(T#/45))*1.2
Y=124+Cos(T#)*(70*(1-Sin(T#/45))+10)*1.2
T#=T#+P#
Return
' petit tube / droite
IT7:
NBB=0 : P#=0.08 : OP=400
Q=1 : MXB=800 : G=7
Return
CALC7:
A#=50+50*Sin(T#/OP)
XX#=A#*Sin(T#/50)
YY#=A#*Cos(T#/50)
X=150+XX#+25*Sin(T#)
Y=124+YY#+25*Cos(T#)
T#=T#+P#
Return
' Grd tube / gauche
IT8:
NBB=0 : P#=0.06 : OP=400
Q=1 : MXB=450 : G=5
Return
CALC8:
A#=50+50*Sin(T#/OP)
XX#=A#*Sin(T#/30)
YY#=A#*Cos(T#/30)
X=150+XX#+45*Sin(T#)
Y=124+YY#+45*Cos(T#)
T#=T#-P#
Return
' Spirale
IT9:
NBB=0 : OP=800
P#=0.05 : Q=1 : MXB=300
R=1 : QS=1 : G=7
T#=5
Return
CALC9:
A#=50+50*Sin(T#/OP)
X=150+T#*Sin(T#*R)*1.5
Y=124+T#*Cos(T#*QS)
T#=T#+P# : P#=P#*0.999996
Return
FINS:
End Proc
Procedure INF4[G,P#,AN,LONG]
'--------------------------- Parametres : G=Taille initial bob
' p#=Vitesse / Pas
' AN= 1=Animation bob 0=Pas d'anim
' Long=Temps entre chaque anim
R=1 : Q=1
T#=0 : LMT[1]
OP=10 : TU=0
D=2
Repeat
Add S,1,0 To NBS
Screen To Front S : Screen S
A#=50+50*Sin(T#/OP)
X=150+A#*Sin(T#*R)*1.5
Y=100+A#*Cos(T#*Q)
Paste Bob X,Y,G : Wait Vbl
T#=T#+P#
On Joy(1) Gosub TEST1,TEST2,T,TEST3,T,T,T,TEST4,T,T,T,T,T,T,T,TEST5,TEST6,TEST7,T,TEST8,T,T,T,TEST9
If AN=1 Then Inc TEMP : If TEMP=LONG Then TEMP=0 : G=G+D : If G>11 or G<5 Then D=-D
Until Mouse Key
Fade 2
Wait 30
Goto FINN
T:
Return
TEST1:
Inc R : Return
TEST2:
Dec R : Return
TEST3:
Inc Q : Return
TEST4:
Dec Q : Return
TEST5:
Return
TEST6:
P#=P#+0.001 : Return
TEST7:
P#=P#-0.001 : Return
TEST8:
EFFACE : T#=0 : For I=0 To NBS*NBB : TAX(I)=0 : TAY(I)=0 : Next I
Return
TEST9:
Add AN,1,0 To 1
Return
FINN:
End Proc
Procedure EFFACE
For S=0 To 5
Screen S
Cls 0
Next S : LMT[1]
End Proc
Procedure LGO[YY,T]
Colour 1,$4 : Colour 3,$6
For I=1 To T
Bob 1,35,YY,1
Wait Vbl
Bob Off 1
Next I
End Proc
Procedure INIT
SCR=3
Screen 0 : Cls 0
Screen Open 2,320,200,16,Lowres : Curs Off : Flash Off : Cls 0
Screen Open SCR,640+64,33,16,Hires : Curs Off : Flash Off : Cls 0
Screen Display SCR,90,142,,32
Screen Open 1,320,256,32,Lowres : Curs Off : Flash Off : Cls 0
Get Sprite Palette
Screen To Front 1
Unpack 2 To 0
Screen To Front 1
Ink 0 : Rem Set Bob 12,,1,
Get Palette 0
Screen Hide 2
Screen To Front 1
Screen 1
LGO[50,30]
Screen 0
Unpack 4 To 2
Screen To Front 1
Screen Hide 2
Screen SCR
Get Palette 2
Screen 1
Channel 0 To Screen Display 3
Amal 0,"Loop:For R0=1 To 44;Let Y=R0+210;Next R0;For R0=1 To 44;Let Y=254-R0;Next R0;Jump Loop"
Amal On
End Proc
Procedure INIT2
Data $0,$0,$0,$246,$0,$68A,$8AC,$ACE,$DEF,$DA2,$C70,$B50,$A40,$830,$520,$0
Screen 0 : Cls 0 : For I=0 To 15 : Read A : Colour I,A : Next I
Screen Close 1
For I=1 To NBS
Screen Open I,320,256,16,Lowres : Flash Off : Curs Off : Cls 0
Get Palette 0
Next I
End Proc
Procedure LMT[Q]
Screen 0
Screen To Front 1
If Q=1 Then Unpack 5 To 0
Get Palette 1 : Palette ,$0,$0,,$0
Screen Hide 0
Screen To Front 1
Screen 1 : Get Palette 0
Palette ,$0,$0,,$0 : Screen 0
If Q=1 Then Screen Copy 0,0,0,320,60 To 1,0,98 : Ink 0 : Bar 0,0 To 320,60
Screen Copy 1,0,0,320,256 To 0,0,0
Screen Show 0
Screen 0
CY=8 : CYY=247
For C=15 To 9 Step -1 : Ink C : Draw 0,CY-C+8 To 320,CY-C+8 : Draw 0,CYY+C-9 To 320,CYY+C-9 : Next C
For S=1 To NBS
Screen S
Screen Copy 0,0,0,320,256 To S,0,0
Clip 0,CY To 320,CYY
Next S
Screen 0 : Palette ,$0,$0,,$0
Clip 0,CY To 320,CYY
Screen To Front 0
Fade 2,,$124,$135,,$468
Wait 30
For I=1 To NBS : Screen I : Get Palette 0 : Next I
End Proc
Procedure FERME
For I=0 To NBS : Screen To Front 0 : Screen I : Cls 0 : Next I
For I=1 To NBS
Screen Close I
Next I
End Proc
Procedure IMG[IN,IC,IG]
IC=IC-2
If TFP<>0 Then Goto SUITE
'------------ DATA : Palettes des couleurs pour les 2 images (2*32)
Data $0,$44,$22,$0,$986,$764,$1,$112,$223,$334,$445,$556,$667,$778,$889
Data $99A,$AAB,$BBC,$CCD,$DDE,$542,$431,$320,$210,$33,$685,$574,$463,$352
Data $241,$130,$20
Data $0,$167,$157,$0,$10,$20,$30,$40,$BDF,$ACF,$9BF,$8AE,$79D,$68C,$57B,$46A
Data $359,$248,$137,$DED,$FFE,$FEC,$ECA,$CA8,$A86,$864,$642,$531,$420,$310
Data $200,$100
Dim PAL1(32),PAL2(32)
For J=0 To 31 : Read PAL1(J) : Next J
For J=0 To 31 : Read PAL2(J) : Next J
TFP=1
'------------------------------------------------
SUITE:
EC=1 : Rem Numero Ecran
If IG=1
For J=0 To 31
Colour J,PAL1(J)
Next J
IY=0
DD=7
End If
If IG=2
For J=0 To 31
Colour J,PAL2(J)
Next J
IY=130
DD=8
End If
'----------------------- Affiche 2 lignes degradees Pfeu !!
D=DD
If IN>9 Then Goto WHT
For I=0 To 160 Step 20
Ink D
Draw I,IC-1 To I+20,IC-1
Inc D
Next I
Dec D
For I=160 To 320 Step 20
Ink D
Draw I,IC-1 To I+20,IC-1
Dec D
Next I
D=DD
For I=0 To 160 Step 20
Ink D
Draw I,IC+129 To I+20,IC+129
Inc D
Next I
Dec D
For I=160 To 320 Step 20
Ink D
Draw I,IC+129 To I+20,IC+129
Dec D
Next I
WHT:
'---------------------------------- Quel affichage/effacement ?
If IN=1 Then Gosub AFF1
If IN=11 Then Gosub EFF1
If IN=2 Then Gosub AFF2
If IN=12 Then Gosub EFF2
If IN=3 Then Gosub AFF3
If IN=13 Then Gosub EFF3
Goto FIN
' --------------Affiche mode 1
AFF1:
Amal Off
T=10
For Y=0 To 100 Step 32
For I=0 To 320+10*32 Step 32
For U=0 To 10
Screen Copy 0,(I+T)-U*32,IY+Y+T,(I+(32-T))-U*32,IY+Y+(32-T) To EC,(I+T)-U*32,IC+Y+T
Dec T
Next U
T=10
Next I
Wait Vbl
Next Y
Channel 0 To Screen Display 3
Amal 0,"Loop:For R0=1 To 44;Let Y=R0+210;Next R0;For R0=1 To 44;Let Y=254-R0;Next R0;Jump Loop"
Amal On
Return
'-------------- Afiche Mode 2
AFF2:
For U=1 To 10
For D=0 To 130 Step 10
Screen Copy 0,0,IY+D,320,IY+D+U To EC,0,IC+D
Next D
Wait Vbl
Next U
Return
'-------------- Afiche Mode 3
AFF3:
If IND=0 Then IND=1 : Dim CO(32)
For I=1 To 31
CO(I)=Colour(I)
Colour I,$FFF
Next I
Screen Copy 0,0,IY,320,IY+129 To EC,0,IC
Wait 10
Fade 5,0,CO(1),CO(2),CO(3),CO(4),CO(5),CO(6),CO(7),CO(8),CO(9),CO(10),CO(11),CO(12),CO(13),CO(14)
Wait 90
Fade 5,,,,,,,,,,,,,,,,CO(15),CO(16),CO(17),CO(18),CO(19),CO(20),CO(21),CO(22),CO(23),CO(24),CO(25),CO(26),CO(27),CO(28),CO(29),CO(30),CO(31)
Wait 90
Return
'----------------- Efface Mode 1 '
EFF1:
Ink 0
T=10
For Y=IC To IC+130 Step 32
For I=0 To 320+10*32 Step 32
For U=0 To 10
Bar(I+T)-U*32,Y+T To(I+(32-T))-U*32,Y+(32-T)
Dec T
Next U
T=10
Next I
Next Y
Cls 0
Return
'---------------- Efface Mode 2
EFF2:
Ink 0
For U=1 To 10
For D=0 To 320 Step 10
Bar D,IC To D+U,IC+128
Next D
Wait Vbl
Next U
Cls 0
Return
'---------------- Efface Mode 3
EFF3:
Ink 0
Fade 5
Wait 5*15
Cls 0
Return
FIN:
End Proc
Procedure TEX
'------------- 1 ---
Def Scroll 2,0,0 To 320,10,0,-1
Data "Hello Every Body Did you think nothing has happend ???"
Data " Ha ha ha ..."
Data 0,4
'------------- 2 ---
Data "The positron section of DEMONS "
Data "is proud to present you A new amazing production "
Data "Called ??? MANIACO DEPRESSIO BOBS ??? "
Data "another bobs demo ??? But where are bobs ??? "
Data "Be patient??? they are coming soon??? "
Data "for the moment let me continue with a cool picture "
Data 0,4
'------------- 3 ---
Data "Yeah ??? Cool drawing ??? "
Data "and now i can give you a little??? sugar???? "
Data "Yes Yes??? a fantastic animation is waiting to be played "
Data "???Ok do not be nervous i give it to your eyes???"
Data 1,4
Data "Just Press","A mouse Button","To exit"
'------------- 4 ---
Data "I know what do you think ! "
Data "Only 2 BOBS ??? It is scandalous ??? "
Data "Do not be hungry Let have a look to this???"
Data 1,4
'------------- 5 ---
Data "Ahhhh ??? At least something more serious "
Data "YES ??? 10 ?TEN? Bobs in a cool animation "
Data "Do you think i cannot do better ??? "
Data "You are wrong??? I CAN AnimAtE 38 BobS "
Data "???Look at this??? "
Data 1,4
Data "Is it a joke ?"
'-------------- 6 ---
Data "Ha ha??? It is not the end??? "
Data "INFINITY??? is more great??? "
Data 1,2
Data "Oh yes infinity..."
'------------- 6 bis ---
Data "Well why not introduce a bubble effect??? "
Data 1,4
Data "A bubble effect ?"
'-------------- 7 ---
Data "So here are the infinity bobs??? "
Data "Now Enjoy this faboulous hypnotic spiral??? "
Data 1,4
'-------------- 8 ---
Data "and now are you ready for the full show??? "
Data "Ok??? just read this little up instruction before??? "
Data 1,4
Data "Press Left Mouse Button","To see the next effect"
Data "Press Right Mouse Button","During a few secondes !","To continue the demo..."
'-------------- 9 ---
Data "it was great??? Now let me tel you something?????? "
Data "sure you will be surprise??? "
Data 0,4
Data "all this demo was code "
Data "with - AMOS -","the basic language"
'
Data "Yes it is true??? Well now you know this little secret "
Data "we can continue the trip with the staff and some greetings "
Data 1,4
'-------------- 10 ---
Data "Well now you will be autorized to use the manual part "
Data "look up to read the differents commands???"
Data 1,4
'
Data "Please take your joystick"
Data "and use those commands..."
Data "Joy UP + FIRE : INC SPEED"
Data "Joy DOWN + FIRE : DEC SPEED"
Data "Joy RIGHT + FIRE : ANIM ON/OFF"
Data "Joy LEFT + FIRE : CLEAR SCREEN"
Data "Joy LEFT : DEC X HOLD"
Data "Joy RIGHT : INC X HOLD"
Data "joy UP : INC Y HOLD"
Data "joy DOWN : DEC Y HOLD"
Data "Let's GO"
Data "$","$"
'------------- 1 ---
INIT
TT=2 : Gosub AFTEX
'-------------- 2 ---
Music 1 : Tempo TP
Channel 0 To Screen Display SCR
Amal 0,"Loop:For R0=1 To 44;Let Y=R0+210;Next R0;For R0=1 To 44;Let Y=254-R0;Next R0;Jump Loop"
Amal On
TT=6 : Gosub AFTEX
'-------------- 3 ---
IMG[1,40,1]
TT=4 : Gosub AFTEX
K=3 : TI=8 : Gosub AFTEX2
IMG[11,40,1]
INIT2
INF1[3]
FERME
'-------------- 4 ---
INIT
IMG[2,40,2]
TT=3 : Gosub AFTEX
IMG[12,40,2]
INIT2
INF1[2]
FERME
'-------------- 5 ---
INIT
IMG[3,40,1]
TT=5 : Gosub AFTEX
K=1 : TI=8 : Gosub AFTEX2
IMG[13,40,2]
INIT2
INF1[1]
FERME
'-------------- 6 ---
INIT
IMG[1,40,2]
TT=2 : Gosub AFTEX
K=1 : Gosub AFTEX2
IMG[12,40,2]
INIT2
INF0[1,0]
FERME
'-------------- 6 bis ---
INIT
IMG[1,40,1]
TT=1 : Gosub AFTEX
K=1 : TI=8 : Gosub AFTEX2
IMG[11,40,1]
INIT2
INF0[1,1]
FERME
'-------------- 7 ---
INIT
IMG[3,40,1]
TT=2 : Gosub AFTEX
IMG[11,40,1]
INIT2
INF0[10,0]
FERME
'-------------- 8 ---
INIT
IMG[1,40,2]
TT=2 : Gosub AFTEX
K=5 : TI=11 : Gosub AFTEX2
IMG[12,40,2]
INIT2
DP=8 : CONT=1
Repeat
INF0[DP,0]
Add DP,1,1 To 10
Until Mouse Key=2
FERME
'-------------- 9 ---
INIT
IMG[1,40,1]
TT=2
Gosub AFTEX
K=3 : TI=10 : Gosub AFTEX2
Channel 0 To Screen Display SCR
Amal 0,"Loop:For R0=1 To 44;Let Y=R0+210;Next R0;For R0=1 To 44;Let Y=254-R0;Next R0;Jump Loop"
Amal On
TT=2 : Gosub AFTEX
IMG[13,40,1]
GRETINGS
'--------------10 ---
INIT
IMG[3,40,2]
TT=2
Gosub AFTEX
K=11 : TI=14
Gosub AFTEX2
IMG[12,40,2]
INIT2
INF4[5,0.05,1,5]
FERME
LGO[50,10]
SECRET
End : Rem end final
AFTEX:
AR$="" : A$=""
For RD=1 To TT
Read A$ : If A$="$" Then A$="END OF TEXT !" : Restore : Read A$
AR$=AR$+A$
Next RD
Read A,B
BIG[AR$,A,B]
Return
AFTEX2:
For I=1 To K
Colour 3,$0
Ink 3,0,0
Read A$
LP=Len(A$)*8
LP=320-LP
LP=LP/2
Locate 0,0 : Text LP,7,A$ : Fade 5,,,,$FFF : Wait TI*10 : SCRO2
Next I
Return
End Proc
Procedure SCRO2
For I=1 To 50
If Mouse Key Then Ink 0 : Bar 0,0 To 320,9 : Exit
Scroll 2
Wait Vbl
Next I
End Proc
Procedure BIG[T$,ID,SP]
Screen SCR : Screen To Front SCR : Get Palette 2
For J=0 To 4
For I=1 To 10
X(I+J*10)=DX
Add DX,32
Y(I+J*10)=J*32
Next I : DX=0 : Next J
T$=Upper$(T$)
T$=T$+" "
L=Len(T$)
Gosub CHAR
Repeat
Screen Offset SCR,TX,0
Wait Vbl
Add TX,SP,1 To 640+64
Add T,SP,0 To 640+63
If TX>=640+63 Then Dec YY
Inc POL : If POL=32/SP Then POL=0 : Gosub CHAR
Exit If IC>=L
Until Mouse Key
Fade 1 : Wait 15 : Cls 0
Screen Offset SCR,0,0
Goto FINI
CHAR:
Inc IC
C$=Mid$(T$,IC,1) : C=Asc(C$)
If C>=65 Then CD=C-64
If C>=48 and C<65 Then CD=C-17
If C=32 Then CD=50
Screen Copy 2,X(CD),Y(CD),X(CD)+32,Y(CD)+32 To SCR,T,1
Return
FINI:
If ID=1
Amal Off
Screen 0 : Cls 0
Screen Close SCR : Screen Close 2 : Screen 1
End If
STE:
Amal Off
Screen 1 : Screen To Front 1
End Proc
Procedure GRETINGS
Data " "," ","- s t a f f -"
Data "blue max","","for all amos coding"
Data "Scott","","for the cool Musics"
Data "Homuk","","for math formulas"
Data "C Dryk","","for all great graphix"
Data "Ludug","","for the pretty font"
Data " "," ","- g r e e t i n g s -"
Data "Francois","Lionnet","Mega Thanks for This great langage"
Data "Superdevil","","Be more cool !"
Data "vermitrax","","Stay alive !"
Data "john jack","","Make more digits !"
Data "hades","","do your best !"
Data "antiriad","","What new ?"
Data "billy","","Cool coordination !"
Data "gother","","Why not calling me ?"
Data "prof","","Come back on the scene !"
Data "Dr","strange","What about you ?"
Data "Eric","V.","I want to see your work !"
Data "spider","","Great work ! Great friends !"
Data "Cyclone","","Cool work again !"
Data "les","feles","Cool unserious working !"
Data "sun","connection","What is your next product !"
Data "the,","mohawks","Starting a new life !"
Data "Syntex","","Good Amos programing..."
Data "angels","","Always bad fucking cracks ?"
Data "paradox","","Why cracking bullshits ?"
Data "sub","software","Cool compacting, after all !"
Data "Red","Sector","Very good work !"
Data "All","OTHER","I ForGOTTEN"
Data "$","$","$"
Dim XS(400),YS(400)
SCR=1
Screen 0 : Cls 0 : Screen To Front 0
Screen Hide 0
Unpack 4 To 0
Screen SCR
Get Palette 0
Cls 0
Screen To Front SCR : Screen SCR
For J=0 To 4
For I=1 To 10
X(I+J*10)=DX
Add DX,32
Y(I+J*10)=J*32
Next I : DX=0 : Next J
Dim CL(16)
For C=0 To 15
CL(C)=Colour(C)
Next C
Double Buffer : Ink 1,0,1
'---------------------------------
CHARI:
Cls 0
Read T$,T2$,T3$ : If T2$="" Then REC=1 Else REC=2
If T$="$" Then T$="END OF" : T2$="GREETINGS" : T3$="Just click mouse to continue demo" : Restore
If T$=" " Then If T2$=" " Then LT=Len(T3$) : Text(320-LT*8)/2,134,T3$ : Goto PLU
T$=Upper$(T$) : T2$=Upper$(T2$)
FY=110
If REC=2 Then FY=FY-16
For JP=1 To REC
L=Len(T$) : LI=L
If LI>LIL Then LIL=LI
LL=LI*32 : MI=(320-LL)/2
For C=1 To 15 : Colour C,$FFF : Next C
For S=1 To 2
For IC=1 To LI
C$=Mid$(T$,IC,1) : C=Asc(C$)
If C>=65 Then CD=C-64
If C>=48 and C<65 Then CD=C-17
If C=32 Then CD=50
Screen Copy 0,X(CD),Y(CD),X(CD)+32,Y(CD)+32 To SCR,MI+(IC*32)-32,FY
Next IC
Ink 1,0,1 : LT=Len(T3$) : Text(320-LT*8)/2,134+REC*16,T3$
Screen Swap
Next S
Add FY,32 : T$=T2$
Next JP
Fade 5,CL(0),CL(1),CL(2),CL(3),CL(4),CL(5),CL(6),CL(7),CL(8),CL(9),CL(10),CL(11),CL(12),CL(13),CL(14),CL(15),CL(16)
For IC=1 To 5
X=Rnd(320) : Y=Rnd(90)
Plot X,Y : Plot X+1,Y : Plot X-1,Y : Plot X,Y+1 : Plot X,Y-1
Plot X,Y+165 : Plot X+1,Y+165 : Plot X-1,Y+165 : Plot X,Y+166 : Plot X,Y+164
Next IC
'-------------------------------------------
STAR:
If REC=2 Then LY=2 Else LY=1
If LIL>5 Then LX=3 Else LX=2
LIL=0
T#=0 : P#=0.035
VX=150 : VY=110
For I=1 To 400
XS(I)=50*Sin(T#)*LX
YS(I)=50*Cos(T#)*LY
T#=T#+P# : CR#=0.2
If P#=0.07 Then C=15 Else If P#=0.035 Then C=30
Next I
For J=1 To 2
For I=1 To 180
Bob 1,XS(I)+VX,YS(I)+VY,15
Bob 2,XS(I+C)+VX,YS(I+C)+VY,15
Bob 3,XS(I+C*2)+VX,YS(I+C*2)+VY,15
Bob 4,XS(I+C*3)+VX,YS(I+C*3)+VY,15
Bob 5,XS(I+C*4)+VX,YS(I+C*4)+VY,15
Bob 6,XS(I+C*5)+VX,YS(I+C*5)+VY,15
If Mouse Key Then Goto PARFIN
Wait Vbl
Next I
Next J
PLU:
Bob Off
Shift Off
Fade 2,0,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Wait 30
Fade 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Wait 30
Cls 0 : Screen Swap : Cls 0
Goto CHARI
PARFIN:
Fade 5 : Wait 5*15
Screen 0 : Cls 0
Screen Close 1
End Proc
Procedure FAST
Erase 1
Screen 0 : Cls 0
Screen Open 1,400,256,32,Lowres : Curs Off : Flash Off : Cls 0
Screen Hide 1
For I=3 To 31 : Add C,128
Colour I,C
Ink I : Draw 0,100+I To 400,100+I
Next I
For I=31 To 3 Step -1 : Ink I : Draw 0,162-I To 400,162-I : Next I
Screen Show 1
Screen 0 : Ink 2,0,1 : Colour 1,$0
Text 10,15,"Fast loading..." : Get Bob 20,0,0 To 16*8,20 : Cls 0
Screen 1
Bob Draw : Colour 2,$FFF : For Y=90 To 120 : Bob 1,105,Y,20 : Wait Vbl : Next Y
'
End Proc
Procedure SECRET
SC=2
FAST
ALL$=DRIV$+"bold.abk"
Load ALL$,SC : Fade 4 : Wait 4*15 : Cls 0
Cls 0 : Screen 0 : Cls 0 : Screen 1 : Cls 0 : Screen To Front 1
For I=0 To 31 : Colour I,$0 : Next I
Screen 1
Screen Open 2,320,100,16,Lowres : Curs Off : Flash Off : Cls 0
Screen Open 3,320,150,16,Lowres : Curs Off : Flash Off : Cls 0
Screen 0 : Cls 0
Screen 1
YY=30 : YYY=170
Screen Display 2,0,YY,,
Screen Display 3,0,YYY,,
Screen To Front 2
Screen To Front 3
Unpack SC To 0
Screen 1
Screen Copy 0,0,0,183,235 To 1,68,10
Screen To Back 0
Fade 5 To 0
Wait 5*15+100
For I=1 To 150
Dec YY : Inc YYY : Inc YYY
Screen Display 2,0,YY,,
Screen Display 3,0,YYY,,
Wait Vbl : Wait 2
Next I
Screen Close 2 : Screen Close 3
Data "Cette demo touche a sa fin","Nous esperons vous avoir"
Data "Diverti agreablement","Tres bientot nous aurons"
Data "le plaisir de vous presenter","de nouvelles productions"
Data "en attendant vous pouvez","vous procurer nos dernieres"
Data "productions...","- FANTASY SPACE I -"
Data "- FANTASY SPACE II -","- JAPANESS SEXY FOLIES -"
Data "- TOTAL COPPER -","Ecrivez a"
Data "- Blue Max -","Eric Boez"
Data "B.P.11","59440 Avesnelles"
Data "France","Tous les Demons"
Data "Vous crachent leurs","meilleurs voeux"
Data "Pour l'annee 1991","Happy New Year"
Data "Domo Domo","..."
Data "Over !","..."
Ink 29,0,0
For I=1 To 28
Read A$
LP=Len(A$)*8
LP=320-LP
LP=LP/2
Text LP,7,A$ : Wait 150 : SCRO2
Exit If Mouse Key
Next I
Fade 8
For J=63 To 0 Step -1 : Mvolume J : Wait 3 : Next J
Wait 8*15 : Wait 100
Music Off
End Proc