home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 101-125 / apd124 / positron.amos / positron.amosSourceCode < prev   
AMOS Source Code  |  1990-09-27  |  25KB  |  976 lines

  1. '----------------------------------- 
  2. '---- B O B S  D E M O -------------   
  3. '----------------------------------- 
  4. '----    V 1.2 --------------------- 
  5. '----------------------------------- 
  6. '---- Programming by : BLUE MAX ---- 
  7. '---- Picture     by : C-DRYK   ---- 
  8. '---- Music       by : SCOTT    ---- 
  9. '---- Math        by : HOMUK    ---- 
  10. '----------------------------------- 
  11. '---- A Positron Release 5/1/91 ---- 
  12. '----  (C)opyright 1991 DEMONS  ----   
  13. '----------------------------------- 
  14. Hide 
  15. Led Off 
  16. Close Editor 
  17. Close Workbench 
  18. Global DRIV$,BO$,BO2$,BO3$,SCR,NBS,Z#,CONT,TP
  19. Dim X(50),Y(50)
  20. Dim TAX(190),TAY(190)
  21. Global X(),Y(),TAX(),TAY()
  22. Z#=1 : TP=16
  23. INITIAL
  24. TEX
  25. '------------------------------  
  26. Procedure INITIAL
  27.    DRIV$="df0:"
  28.    BO5$=DRIV$+"bold.abk"
  29.    ALL$=DRIV$+"Sprites.abk"
  30.    Load ALL$
  31.    NBS=5
  32.    Fade 5 : Wait 5*15
  33.    Screen 0 : Cls 0
  34.    Screen Close 1
  35. End Proc
  36. Procedure INF1[CL]
  37.    DG=2
  38.    T#=0
  39.    OP=10 : TU=0
  40.    For K=0 To 38 : TAX(K)=0 : TAY(K)=0 : Next K
  41.    LMT[0]
  42.    On CL Gosub ITA,ITB,ITC
  43.    Repeat 
  44.       Inc S : If S=NBS Then S=0 : Add TU,NBS : If TU=(NBS*NBB) Then TU=0
  45.       Screen To Front S : Screen S
  46.       TAX(CO)=X : TAY(CO)=Y
  47.       Inc CO : If NP>=NBB-2 Then Paste Bob TAX(S+TU),TAY(S+TU),G+1 : If CO=NBS*NBB Then CO=0
  48.       On CL Gosub CALCA,CALCB,CALCC
  49.       Inc NP
  50.       Paste Bob X,Y,G : Wait Vbl 
  51.    Until Mouse Key
  52.    Fade 2
  53.    Wait 30
  54.    For K=0 To 38 : TAX(K)=0 : TAY(K)=0 : Next K
  55.    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
  56.    T#=0 : TU=0 : S=0 : CO=0 : NP=0 : CT=0
  57.    Goto FIND
  58.    'Twin circle limited 
  59.    ITA:
  60.    NBB=38 : P#=0.03
  61.    Q=0 : G=7
  62.    Return 
  63.    CALCA:
  64.    A#=2*Abs(Sin(T#+T#/22))
  65.    X=150+50*Cos(T#)*A#
  66.    Y=124+50*Sin(T#)*A#
  67.    T#=T#+P#
  68.    Return 
  69.    'Treffle / 4 boucles limited 
  70.    ITB:
  71.    NBB=10 : P#=0.03
  72.    Q=0 : G=7
  73.    Return 
  74.    CALCB:
  75.    A#=2*Cos(2*T#-Cos(T#/30+T#/30))
  76.    X=150+50*Cos(T#)*A#
  77.    Y=124+50*Sin(T#)*A#
  78.    T#=T#+P#
  79.    Return 
  80.    ' classic
  81.    ITC:
  82.    T#=0 : G=11
  83.    OP=100 : TU=0
  84.    NBB=2
  85.    P#=0.04 : Q=0
  86.    R=2 : QS=3
  87.    Return 
  88.    CALCC:
  89.    A#=50+50*Sin(T#/OP)
  90.    X=150+A#*Sin(T#*R)*1.5
  91.    Y=100+A#*Cos(T#*QS)
  92.    T#=T#+P#
  93.    Return 
  94.    FIND:
  95. End Proc
  96. Procedure INF0[CL,AN]
  97.    LONG=4 : DG=2
  98.    T#=0
  99.    OP=10 : TU=0
  100.    CO1=$124 : CO2=$135 : CO3=$468 : D=$111
  101.    On CL Gosub IT1B,IT2,IT2C,IT3,IT4,IT5,IT6,IT7,IT8,IT9
  102.    LMT[1]
  103.    Repeat 
  104.       Inc S : If S=NBS Then S=0 : Add TU,NBS : If TU=(NBS*NBB) Then TU=0
  105.       Screen To Front S : Screen S
  106.       On CL Gosub CALC1B,CALC2,CALC2C,CALC3,CALC4,CALC5,CALC6,CALC7,CALC8,CALC9
  107.       If AN=1 Then Inc TEMP : If TEMP=LONG Then TEMP=0 : G=G+DG : If G>11 or G<5 Then DG=-DG
  108.       Inc NP
  109.       If NP>=MXB and KLIK<=NBS
  110.          Add POL,1,1 To 8
  111.          If POL=8
  112.             D=CO1-273 : If D>273
  113.                D=273
  114.             End If 
  115.             CO1=CO1-D
  116.             D=CO2-273 : If D>273
  117.                D=273
  118.             End If 
  119.             CO2=CO2-D
  120.             D=CO3-273 : If D>273
  121.                D=273
  122.             End If 
  123.             CO3=CO3-D
  124.          End If 
  125.          Palette ,CO1,CO2,,CO3 : Inc CT : Add KLIK,1,0 To NBS
  126.          If CT>=NBS*8
  127.             Palette ,$0,$0,,$0
  128.             If CT>=NBS*10
  129.                KLIK=NBS+1
  130.             End If 
  131.          End If 
  132.       End If 
  133.       Paste Bob X,Y,G : Wait Vbl 
  134.    Until Mouse Key
  135.    Fade 2
  136.    Wait 30
  137.    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
  138.    T#=0 : TU=0 : S=0 : CO=0 : NP=0 : KLIK=0 : MXB=0 : CT=0
  139.    Goto FINS
  140.    'Twin circle illimited 
  141.    IT1B:
  142.    NBB=0 : P#=0.03
  143.    MXB=350 : Q=1 : G=9
  144.    Return 
  145.    CALC1B:
  146.    A#=2*Abs(Sin(T#+T#/22))
  147.    X=150+50*Cos(T#)*A#
  148.    Y=124+50*Sin(T#)*A#
  149.    T#=T#+P#
  150.    Return 
  151.    '2  boucles
  152.    IT2:
  153.    NBB=0 : P#=0.03
  154.    Q=1 : MXB=300 : G=7
  155.    Return 
  156.    CALC2:
  157.    A#=2*Abs(Sin(T#+T#/30))
  158.    X=150+50*Cos(T#)*A#*Sin(Abs(T#))
  159.    Y=124+50*Sin(T#)*A#
  160.    T#=T#+P#
  161.    Return 
  162.    'Treffle / 4 boucle illimited
  163.    IT2C:
  164.    NBB=0 : P#=0.02
  165.    Q=1 : MXB=500 : G=7
  166.    Return 
  167.    CALC2C:
  168.    A#=2*Cos(2*T#-Cos(T#/30+T#/20))
  169.    X=150+50*Cos(T#)*A#
  170.    Y=124+50*Sin(T#)*A#
  171.    T#=T#+P#
  172.    Return 
  173.    'Double boucle en bas
  174.    IT3:
  175.    NBB=0 : P#=0.02
  176.    Q=1 : MXB=300 : G=7
  177.    Return 
  178.    CALC3:
  179.    A#=2*Sin(T#+T#/30)
  180.    X=150+50*Cos(T#)*A#*Cos(Abs(T#))
  181.    Y=100+50*Sin(T#)*A#
  182.    T#=T#+P#
  183.    Return 
  184.    ' Fleur infinie  
  185.    IT4:
  186.    NBB=0 : P#=0.02
  187.    Q=1 : MXB=350 : G=9
  188.    Return 
  189.    CALC4:
  190.    A#=2*Sin(T#+T#/4)
  191.    X=150+50*Cos(T#)*A#*Cos(Abs(T#))
  192.    Y=124+50*Sin(T#)*A#
  193.    T#=T#+P#
  194.    Return 
  195.    '2 coeurs
  196.    IT5:
  197.    NBB=0 : P#=0.02
  198.    Q=1 : MXB=450 : G=5
  199.    Return 
  200.    CALC5:
  201.    A#=2*Cos(2*T#+T#/16)-Abs(Sin(2*T#+T#/16))
  202.    X=150+50*Cos(T#)*A#
  203.    Y=124+50*Sin(T#)*A#
  204.    T#=T#+P#
  205.    Return 
  206.    ' Bag
  207.    IT6:
  208.    NBB=0 : P#=0.04
  209.    Q=1 : MXB=300 : G=5
  210.    Return 
  211.    CALC6:
  212.    X=150+Sin(T#)*(10+70*Sin(T#/45))*1.2
  213.    Y=124+Cos(T#)*(70*(1-Sin(T#/45))+10)*1.2
  214.    T#=T#+P#
  215.    Return 
  216.    ' petit tube / droite
  217.    IT7:
  218.    NBB=0 : P#=0.08 : OP=400
  219.    Q=1 : MXB=800 : G=7
  220.    Return 
  221.    CALC7:
  222.    A#=50+50*Sin(T#/OP)
  223.    XX#=A#*Sin(T#/50)
  224.    YY#=A#*Cos(T#/50)
  225.    X=150+XX#+25*Sin(T#)
  226.    Y=124+YY#+25*Cos(T#)
  227.    T#=T#+P#
  228.    Return 
  229.    ' Grd tube / gauche
  230.    IT8:
  231.    NBB=0 : P#=0.06 : OP=400
  232.    Q=1 : MXB=450 : G=5
  233.    Return 
  234.    CALC8:
  235.    A#=50+50*Sin(T#/OP)
  236.    XX#=A#*Sin(T#/30)
  237.    YY#=A#*Cos(T#/30)
  238.    X=150+XX#+45*Sin(T#)
  239.    Y=124+YY#+45*Cos(T#)
  240.    T#=T#-P#
  241.    Return 
  242.    ' Spirale
  243.    IT9:
  244.    NBB=0 : OP=800
  245.    P#=0.05 : Q=1 : MXB=300
  246.    R=1 : QS=1 : G=7
  247.    T#=5
  248.    Return 
  249.    CALC9:
  250.    A#=50+50*Sin(T#/OP)
  251.    X=150+T#*Sin(T#*R)*1.5
  252.    Y=124+T#*Cos(T#*QS)
  253.    T#=T#+P# : P#=P#*0.999996
  254.    Return 
  255.    FINS:
  256. End Proc
  257. Procedure INF4[G,P#,AN,LONG]
  258.    '--------------------------- Parametres : G=Taille initial bob 
  259.    '                                         p#=Vitesse / Pas 
  260.    '                                         AN= 1=Animation bob 0=Pas d'anim 
  261.    '                                         Long=Temps entre chaque anim 
  262.    R=1 : Q=1
  263.    T#=0 : LMT[1]
  264.    OP=10 : TU=0
  265.    D=2
  266.    Repeat 
  267.       Add S,1,0 To NBS
  268.       Screen To Front S : Screen S
  269.       A#=50+50*Sin(T#/OP)
  270.       X=150+A#*Sin(T#*R)*1.5
  271.       Y=100+A#*Cos(T#*Q)
  272.       Paste Bob X,Y,G : Wait Vbl 
  273.       T#=T#+P#
  274.       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
  275.       If AN=1 Then Inc TEMP : If TEMP=LONG Then TEMP=0 : G=G+D : If G>11 or G<5 Then D=-D
  276.    Until Mouse Key
  277.    Fade 2
  278.    Wait 30
  279.    Goto FINN
  280.    T:
  281.    Return 
  282.    TEST1:
  283.    Inc R : Return 
  284.    TEST2:
  285.    Dec R : Return 
  286.    TEST3:
  287.    Inc Q : Return 
  288.    TEST4:
  289.    Dec Q : Return 
  290.    TEST5:
  291.    Return 
  292.    TEST6:
  293.    P#=P#+0.001 : Return 
  294.    TEST7:
  295.    P#=P#-0.001 : Return 
  296.    TEST8:
  297.    EFFACE : T#=0 : For I=0 To NBS*NBB : TAX(I)=0 : TAY(I)=0 : Next I
  298.    Return 
  299.    TEST9:
  300.    Add AN,1,0 To 1
  301.    Return 
  302.    FINN:
  303. End Proc
  304. Procedure EFFACE
  305.    For S=0 To 5
  306.       Screen S
  307.       Cls 0
  308.    Next S : LMT[1]
  309. End Proc
  310. Procedure LGO[YY,T]
  311.    Colour 1,$4 : Colour 3,$6
  312.    For I=1 To T
  313.       Bob 1,35,YY,1
  314.       Wait Vbl 
  315.       Bob Off 1
  316.    Next I
  317. End Proc
  318. Procedure INIT
  319.    SCR=3
  320.    Screen 0 : Cls 0
  321.    Screen Open 2,320,200,16,Lowres : Curs Off : Flash Off : Cls 0
  322.    Screen Open SCR,640+64,33,16,Hires : Curs Off : Flash Off : Cls 0
  323.    Screen Display SCR,90,142,,32
  324.    Screen Open 1,320,256,32,Lowres : Curs Off : Flash Off : Cls 0
  325.    Get Sprite Palette 
  326.    Screen To Front 1
  327.    Unpack 2 To 0
  328.    Screen To Front 1
  329.    Ink 0 : Rem Set Bob 12,,1, 
  330.    Get Palette 0
  331.    Screen Hide 2
  332.    Screen To Front 1
  333.    Screen 1
  334.    LGO[50,30]
  335.    Screen 0
  336.    Unpack 4 To 2
  337.    Screen To Front 1
  338.    Screen Hide 2
  339.    Screen SCR
  340.    Get Palette 2
  341.    Screen 1
  342.    Channel 0 To Screen Display 3
  343.    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"
  344.    Amal On 
  345. End Proc
  346. Procedure INIT2
  347.    Data $0,$0,$0,$246,$0,$68A,$8AC,$ACE,$DEF,$DA2,$C70,$B50,$A40,$830,$520,$0
  348.    Screen 0 : Cls 0 : For I=0 To 15 : Read A : Colour I,A : Next I
  349.    Screen Close 1
  350.    For I=1 To NBS
  351.       Screen Open I,320,256,16,Lowres : Flash Off : Curs Off : Cls 0
  352.       Get Palette 0
  353.    Next I
  354. End Proc
  355. Procedure LMT[Q]
  356.    Screen 0
  357.    Screen To Front 1
  358.    If Q=1 Then Unpack 5 To 0
  359.    Get Palette 1 : Palette ,$0,$0,,$0
  360.    Screen Hide 0
  361.    Screen To Front 1
  362.    Screen 1 : Get Palette 0
  363.    Palette ,$0,$0,,$0 : Screen 0
  364.    If Q=1 Then Screen Copy 0,0,0,320,60 To 1,0,98 : Ink 0 : Bar 0,0 To 320,60
  365.    Screen Copy 1,0,0,320,256 To 0,0,0
  366.    Screen Show 0
  367.    Screen 0
  368.    CY=8 : CYY=247
  369.    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
  370.    For S=1 To NBS
  371.       Screen S
  372.       Screen Copy 0,0,0,320,256 To S,0,0
  373.       Clip 0,CY To 320,CYY
  374.    Next S
  375.    Screen 0 : Palette ,$0,$0,,$0
  376.    Clip 0,CY To 320,CYY
  377.    Screen To Front 0
  378.    Fade 2,,$124,$135,,$468
  379.    Wait 30
  380.    For I=1 To NBS : Screen I : Get Palette 0 : Next I
  381. End Proc
  382. Procedure FERME
  383.    For I=0 To NBS : Screen To Front 0 : Screen I : Cls 0 : Next I
  384.    For I=1 To NBS
  385.       Screen Close I
  386.    Next I
  387. End Proc
  388. Procedure IMG[IN,IC,IG]
  389.    IC=IC-2
  390.    If TFP<>0 Then Goto SUITE
  391.    '------------ DATA : Palettes des couleurs pour les 2 images (2*32)
  392.    Data $0,$44,$22,$0,$986,$764,$1,$112,$223,$334,$445,$556,$667,$778,$889
  393.    Data $99A,$AAB,$BBC,$CCD,$DDE,$542,$431,$320,$210,$33,$685,$574,$463,$352
  394.    Data $241,$130,$20
  395.    Data $0,$167,$157,$0,$10,$20,$30,$40,$BDF,$ACF,$9BF,$8AE,$79D,$68C,$57B,$46A
  396.    Data $359,$248,$137,$DED,$FFE,$FEC,$ECA,$CA8,$A86,$864,$642,$531,$420,$310
  397.    Data $200,$100
  398.    Dim PAL1(32),PAL2(32)
  399.    For J=0 To 31 : Read PAL1(J) : Next J
  400.    For J=0 To 31 : Read PAL2(J) : Next J
  401.    TFP=1
  402.    '------------------------------------------------
  403.    SUITE:
  404.    EC=1 : Rem Numero Ecran   
  405.    If IG=1
  406.       For J=0 To 31
  407.          Colour J,PAL1(J)
  408.       Next J
  409.       IY=0
  410.       DD=7
  411.    End If 
  412.    If IG=2
  413.       For J=0 To 31
  414.          Colour J,PAL2(J)
  415.       Next J
  416.       IY=130
  417.       DD=8
  418.    End If 
  419.    '----------------------- Affiche 2 lignes degradees     Pfeu !!
  420.    D=DD
  421.    If IN>9 Then Goto WHT
  422.    For I=0 To 160 Step 20
  423.       Ink D
  424.       Draw I,IC-1 To I+20,IC-1
  425.       Inc D
  426.    Next I
  427.    Dec D
  428.    For I=160 To 320 Step 20
  429.       Ink D
  430.       Draw I,IC-1 To I+20,IC-1
  431.       Dec D
  432.    Next I
  433.    D=DD
  434.    For I=0 To 160 Step 20
  435.       Ink D
  436.       Draw I,IC+129 To I+20,IC+129
  437.       Inc D
  438.    Next I
  439.    Dec D
  440.    For I=160 To 320 Step 20
  441.       Ink D
  442.       Draw I,IC+129 To I+20,IC+129
  443.       Dec D
  444.    Next I
  445.    WHT:
  446.    '---------------------------------- Quel affichage/effacement ?
  447.    If IN=1 Then Gosub AFF1
  448.    If IN=11 Then Gosub EFF1
  449.    If IN=2 Then Gosub AFF2
  450.    If IN=12 Then Gosub EFF2
  451.    If IN=3 Then Gosub AFF3
  452.    If IN=13 Then Gosub EFF3
  453.    Goto FIN
  454.    ' --------------Affiche mode 1 
  455.    AFF1:
  456.    Amal Off 
  457.    T=10
  458.    For Y=0 To 100 Step 32
  459.       For I=0 To 320+10*32 Step 32
  460.          For U=0 To 10
  461.             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
  462.             Dec T
  463.          Next U
  464.          T=10
  465.       Next I
  466.       Wait Vbl 
  467.    Next Y
  468.    Channel 0 To Screen Display 3
  469.    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"
  470.    Amal On 
  471.    Return 
  472.    '-------------- Afiche Mode 2
  473.    AFF2:
  474.    For U=1 To 10
  475.       For D=0 To 130 Step 10
  476.          Screen Copy 0,0,IY+D,320,IY+D+U To EC,0,IC+D
  477.       Next D
  478.       Wait Vbl 
  479.    Next U
  480.    Return 
  481.    '-------------- Afiche Mode 3  
  482.    AFF3:
  483.    If IND=0 Then IND=1 : Dim CO(32)
  484.    For I=1 To 31
  485.       CO(I)=Colour(I)
  486.       Colour I,$FFF
  487.    Next I
  488.    Screen Copy 0,0,IY,320,IY+129 To EC,0,IC
  489.    Wait 10
  490.    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)
  491.    Wait 90
  492.    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)
  493.    Wait 90
  494.    Return 
  495.    '----------------- Efface Mode 1 ' 
  496.    EFF1:
  497.    Ink 0
  498.    T=10
  499.    For Y=IC To IC+130 Step 32
  500.       For I=0 To 320+10*32 Step 32
  501.          For U=0 To 10
  502.             Bar(I+T)-U*32,Y+T To(I+(32-T))-U*32,Y+(32-T)
  503.             Dec T
  504.          Next U
  505.          T=10
  506.       Next I
  507.    Next Y
  508.    Cls 0
  509.    Return 
  510.    '---------------- Efface Mode 2  
  511.    EFF2:
  512.    Ink 0
  513.    For U=1 To 10
  514.       For D=0 To 320 Step 10
  515.          Bar D,IC To D+U,IC+128
  516.       Next D
  517.       Wait Vbl 
  518.    Next U
  519.    Cls 0
  520.    Return 
  521.    '---------------- Efface Mode 3
  522.    EFF3:
  523.    Ink 0
  524.    Fade 5
  525.    Wait 5*15
  526.    Cls 0
  527.    Return 
  528.    FIN:
  529. End Proc
  530. Procedure TEX
  531.    '------------- 1 --- 
  532.    Def Scroll 2,0,0 To 320,10,0,-1
  533.    Data "Hello Every Body Did you think nothing has happend ???"
  534.    Data " Ha ha ha ..."
  535.    Data 0,4
  536.    '------------- 2 --- 
  537.    Data "The positron section of DEMONS "
  538.    Data "is proud to present you A new amazing production "
  539.    Data "Called ??? MANIACO DEPRESSIO BOBS ??? "
  540.    Data "another bobs demo ??? But where are bobs ??? "
  541.    Data "Be patient??? they are coming soon??? "
  542.    Data "for the moment let me continue with a cool picture "
  543.    Data 0,4
  544.    '------------- 3 --- 
  545.    Data "Yeah ??? Cool drawing ??? "
  546.    Data "and now i can give you a little??? sugar???? "
  547.    Data "Yes Yes??? a fantastic animation is waiting to be played "
  548.    Data "???Ok do not be nervous i give it to your eyes???"
  549.    Data 1,4
  550.    Data "Just Press","A mouse Button","To exit"
  551.    '------------- 4 --- 
  552.    Data "I know what do you think ! "
  553.    Data "Only  2 BOBS ??? It is scandalous ??? "
  554.    Data "Do not be hungry Let have a look to this???"
  555.    Data 1,4
  556.    '------------- 5 --- 
  557.    Data "Ahhhh ??? At least something more serious "
  558.    Data "YES ??? 10 ?TEN? Bobs in a cool animation "
  559.    Data "Do you think i cannot do better ??? "
  560.    Data "You are wrong??? I CAN AnimAtE 38 BobS "
  561.    Data "???Look at this??? "
  562.    Data 1,4
  563.    Data "Is it a joke ?"
  564.    '-------------- 6 ---
  565.    Data "Ha ha??? It is not the end??? "
  566.    Data "INFINITY??? is more great??? "
  567.    Data 1,2
  568.    Data "Oh yes infinity..."
  569.    '------------- 6 bis --- 
  570.    Data "Well why not introduce a bubble effect??? "
  571.    Data 1,4
  572.    Data "A bubble effect ?"
  573.    '-------------- 7 ---
  574.    Data "So here are the infinity bobs??? "
  575.    Data "Now Enjoy this faboulous hypnotic spiral??? "
  576.    Data 1,4
  577.    '-------------- 8 ---
  578.    Data "and now are you ready for the full show??? "
  579.    Data "Ok??? just read this little up instruction before??? "
  580.    Data 1,4
  581.    Data "Press Left Mouse Button","To see the next effect"
  582.    Data "Press Right Mouse Button","During a few secondes !","To continue the demo..."
  583.    '-------------- 9 ---
  584.    Data "it was great??? Now let me tel you something?????? "
  585.    Data "sure you will be surprise??? "
  586.    Data 0,4
  587.    Data "all this demo was code "
  588.    Data "with - AMOS -","the basic language"
  589.    '
  590.    Data "Yes it is true??? Well now you know this little secret "
  591.    Data "we can continue the trip with the staff and some greetings "
  592.    Data 1,4
  593.    '-------------- 10 --- 
  594.    Data "Well now you will be autorized to use the manual part "
  595.    Data "look up to read the differents commands???"
  596.    Data 1,4
  597.    '
  598.    Data "Please take your joystick"
  599.    Data "and use those commands..."
  600.    Data "Joy UP + FIRE  : INC SPEED"
  601.    Data "Joy DOWN + FIRE  : DEC SPEED"
  602.    Data "Joy RIGHT + FIRE : ANIM ON/OFF"
  603.    Data "Joy LEFT + FIRE : CLEAR SCREEN"
  604.    Data "Joy LEFT : DEC X HOLD"
  605.    Data "Joy RIGHT : INC X HOLD"
  606.    Data "joy UP : INC Y HOLD"
  607.    Data "joy DOWN : DEC Y HOLD"
  608.    Data "Let's GO"
  609.    Data "$","$"
  610.    '------------- 1 --- 
  611.    INIT
  612.    TT=2 : Gosub AFTEX
  613.    '-------------- 2 ---
  614.    Music 1 : Tempo TP
  615.    Channel 0 To Screen Display SCR
  616.    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"
  617.    Amal On 
  618.    TT=6 : Gosub AFTEX
  619.    '-------------- 3 ---
  620.    IMG[1,40,1]
  621.    TT=4 : Gosub AFTEX
  622.    K=3 : TI=8 : Gosub AFTEX2
  623.    IMG[11,40,1]
  624.    INIT2
  625.    INF1[3]
  626.    FERME
  627.    '-------------- 4 ---    
  628.    INIT
  629.    IMG[2,40,2]
  630.    TT=3 : Gosub AFTEX
  631.    IMG[12,40,2]
  632.    INIT2
  633.    INF1[2]
  634.    FERME
  635.    '-------------- 5 ---
  636.    INIT
  637.    IMG[3,40,1]
  638.    TT=5 : Gosub AFTEX
  639.    K=1 : TI=8 : Gosub AFTEX2
  640.    IMG[13,40,2]
  641.    INIT2
  642.    INF1[1]
  643.    FERME
  644.    '-------------- 6 ---
  645.    INIT
  646.    IMG[1,40,2]
  647.    TT=2 : Gosub AFTEX
  648.    K=1 : Gosub AFTEX2
  649.    IMG[12,40,2]
  650.    INIT2
  651.    INF0[1,0]
  652.    FERME
  653.    '-------------- 6 bis ---
  654.    INIT
  655.    IMG[1,40,1]
  656.    TT=1 : Gosub AFTEX
  657.    K=1 : TI=8 : Gosub AFTEX2
  658.    IMG[11,40,1]
  659.    INIT2
  660.    INF0[1,1]
  661.    FERME
  662.    '-------------- 7 ---
  663.    INIT
  664.    IMG[3,40,1]
  665.    TT=2 : Gosub AFTEX
  666.    IMG[11,40,1]
  667.    INIT2
  668.    INF0[10,0]
  669.    FERME
  670.    '-------------- 8 ---
  671.    INIT
  672.    IMG[1,40,2]
  673.    TT=2 : Gosub AFTEX
  674.    K=5 : TI=11 : Gosub AFTEX2
  675.    IMG[12,40,2]
  676.    INIT2
  677.    DP=8 : CONT=1
  678.    Repeat 
  679.       INF0[DP,0]
  680.       Add DP,1,1 To 10
  681.    Until Mouse Key=2
  682.    FERME
  683.    '-------------- 9 ---
  684.    INIT
  685.    IMG[1,40,1]
  686.    TT=2
  687.    Gosub AFTEX
  688.    K=3 : TI=10 : Gosub AFTEX2
  689.    Channel 0 To Screen Display SCR
  690.    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"
  691.    Amal On 
  692.    TT=2 : Gosub AFTEX
  693.    IMG[13,40,1]
  694.    GRETINGS
  695.    '--------------10 ---
  696.    INIT
  697.    IMG[3,40,2]
  698.    TT=2
  699.    Gosub AFTEX
  700.    K=11 : TI=14
  701.    Gosub AFTEX2
  702.    IMG[12,40,2]
  703.    INIT2
  704.    INF4[5,0.05,1,5]
  705.    FERME
  706.    LGO[50,10]
  707.    SECRET
  708.    End : Rem end final  
  709.    AFTEX:
  710.    AR$="" : A$=""
  711.    For RD=1 To TT
  712.       Read A$ : If A$="$" Then A$="END OF TEXT !" : Restore : Read A$
  713.       AR$=AR$+A$
  714.    Next RD
  715.    Read A,B
  716.    BIG[AR$,A,B]
  717.    Return 
  718.    AFTEX2:
  719.    For I=1 To K
  720.       Colour 3,$0
  721.       Ink 3,0,0
  722.       Read A$
  723.       LP=Len(A$)*8
  724.       LP=320-LP
  725.       LP=LP/2
  726.       Locate 0,0 : Text LP,7,A$ : Fade 5,,,,$FFF : Wait TI*10 : SCRO2
  727.    Next I
  728.    Return 
  729. End Proc
  730. Procedure SCRO2
  731.    For I=1 To 50
  732.       If Mouse Key Then Ink 0 : Bar 0,0 To 320,9 : Exit 
  733.       Scroll 2
  734.       Wait Vbl 
  735.    Next I
  736. End Proc
  737. Procedure BIG[T$,ID,SP]
  738.    Screen SCR : Screen To Front SCR : Get Palette 2
  739.    For J=0 To 4
  740.       For I=1 To 10
  741.          X(I+J*10)=DX
  742.          Add DX,32
  743.          Y(I+J*10)=J*32
  744.    Next I : DX=0 : Next J
  745.    T$=Upper$(T$)
  746.    T$=T$+"                     "
  747.    L=Len(T$)
  748.    Gosub CHAR
  749.    Repeat 
  750.       Screen Offset SCR,TX,0
  751.       Wait Vbl 
  752.       Add TX,SP,1 To 640+64
  753.       Add T,SP,0 To 640+63
  754.       If TX>=640+63 Then Dec YY
  755.       Inc POL : If POL=32/SP Then POL=0 : Gosub CHAR
  756.       Exit If IC>=L
  757.    Until Mouse Key
  758.    Fade 1 : Wait 15 : Cls 0
  759.    Screen Offset SCR,0,0
  760.    Goto FINI
  761.    CHAR:
  762.    Inc IC
  763.    C$=Mid$(T$,IC,1) : C=Asc(C$)
  764.    If C>=65 Then CD=C-64
  765.    If C>=48 and C<65 Then CD=C-17
  766.    If C=32 Then CD=50
  767.    Screen Copy 2,X(CD),Y(CD),X(CD)+32,Y(CD)+32 To SCR,T,1
  768.    Return 
  769.    FINI:
  770.    If ID=1
  771.       Amal Off 
  772.       Screen 0 : Cls 0
  773.       Screen Close SCR : Screen Close 2 : Screen 1
  774.    End If 
  775.    STE:
  776.    Amal Off 
  777.    Screen 1 : Screen To Front 1
  778. End Proc
  779. Procedure GRETINGS
  780.    Data " "," ","-  s t a f f  -"
  781.    Data "blue max","","for all amos coding"
  782.    Data "Scott","","for the cool Musics"
  783.    Data "Homuk","","for math formulas"
  784.    Data "C Dryk","","for all great graphix"
  785.    Data "Ludug","","for the pretty font"
  786.    Data " "," ","-  g r e e t i n g s  -"
  787.    Data "Francois","Lionnet","Mega Thanks for This great langage"
  788.    Data "Superdevil","","Be more cool !"
  789.    Data "vermitrax","","Stay alive !"
  790.    Data "john jack","","Make more digits !"
  791.    Data "hades","","do your best !"
  792.    Data "antiriad","","What new ?"
  793.    Data "billy","","Cool coordination !"
  794.    Data "gother","","Why not calling me ?"
  795.    Data "prof","","Come back on the scene !"
  796.    Data "Dr","strange","What about you ?"
  797.    Data "Eric","V.","I want to see your work !"
  798.    Data "spider","","Great work ! Great friends !"
  799.    Data "Cyclone","","Cool work again !"
  800.    Data "les","feles","Cool unserious working !"
  801.    Data "sun","connection","What is your next product !"
  802.    Data "the,","mohawks","Starting a new life !"
  803.    Data "Syntex","","Good Amos programing..."
  804.    Data "angels","","Always bad fucking cracks ?"
  805.    Data "paradox","","Why cracking bullshits ?"
  806.    Data "sub","software","Cool compacting, after all !"
  807.    Data "Red","Sector","Very good work !"
  808.    Data "All","OTHER","I ForGOTTEN"
  809.    Data "$","$","$"
  810.    Dim XS(400),YS(400)
  811.    SCR=1
  812.    Screen 0 : Cls 0 : Screen To Front 0
  813.    Screen Hide 0
  814.    Unpack 4 To 0
  815.    Screen SCR
  816.    Get Palette 0
  817.    Cls 0
  818.    Screen To Front SCR : Screen SCR
  819.    For J=0 To 4
  820.       For I=1 To 10
  821.          X(I+J*10)=DX
  822.          Add DX,32
  823.          Y(I+J*10)=J*32
  824.    Next I : DX=0 : Next J
  825.    Dim CL(16)
  826.    For C=0 To 15
  827.       CL(C)=Colour(C)
  828.    Next C
  829.    Double Buffer : Ink 1,0,1
  830.    '--------------------------------- 
  831.    CHARI:
  832.    Cls 0
  833.    Read T$,T2$,T3$ : If T2$="" Then REC=1 Else REC=2
  834.    If T$="$" Then T$="END OF" : T2$="GREETINGS" : T3$="Just click mouse to continue demo" : Restore 
  835.    If T$=" " Then If T2$=" " Then LT=Len(T3$) : Text(320-LT*8)/2,134,T3$ : Goto PLU
  836.    T$=Upper$(T$) : T2$=Upper$(T2$)
  837.    FY=110
  838.    If REC=2 Then FY=FY-16
  839.    For JP=1 To REC
  840.       L=Len(T$) : LI=L
  841.       If LI>LIL Then LIL=LI
  842.       LL=LI*32 : MI=(320-LL)/2
  843.       For C=1 To 15 : Colour C,$FFF : Next C
  844.       For S=1 To 2
  845.          For IC=1 To LI
  846.             C$=Mid$(T$,IC,1) : C=Asc(C$)
  847.             If C>=65 Then CD=C-64
  848.             If C>=48 and C<65 Then CD=C-17
  849.             If C=32 Then CD=50
  850.             Screen Copy 0,X(CD),Y(CD),X(CD)+32,Y(CD)+32 To SCR,MI+(IC*32)-32,FY
  851.          Next IC
  852.          Ink 1,0,1 : LT=Len(T3$) : Text(320-LT*8)/2,134+REC*16,T3$
  853.          Screen Swap 
  854.       Next S
  855.       Add FY,32 : T$=T2$
  856.    Next JP
  857.    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)
  858.    For IC=1 To 5
  859.       X=Rnd(320) : Y=Rnd(90)
  860.       Plot X,Y : Plot X+1,Y : Plot X-1,Y : Plot X,Y+1 : Plot X,Y-1
  861.       Plot X,Y+165 : Plot X+1,Y+165 : Plot X-1,Y+165 : Plot X,Y+166 : Plot X,Y+164
  862.    Next IC
  863.    '------------------------------------------- 
  864.    STAR:
  865.    If REC=2 Then LY=2 Else LY=1
  866.    If LIL>5 Then LX=3 Else LX=2
  867.    LIL=0
  868.    T#=0 : P#=0.035
  869.    VX=150 : VY=110
  870.    For I=1 To 400
  871.       XS(I)=50*Sin(T#)*LX
  872.       YS(I)=50*Cos(T#)*LY
  873.       T#=T#+P# : CR#=0.2
  874.       If P#=0.07 Then C=15 Else If P#=0.035 Then C=30
  875.    Next I
  876.    For J=1 To 2
  877.       For I=1 To 180
  878.          Bob 1,XS(I)+VX,YS(I)+VY,15
  879.          Bob 2,XS(I+C)+VX,YS(I+C)+VY,15
  880.          Bob 3,XS(I+C*2)+VX,YS(I+C*2)+VY,15
  881.          Bob 4,XS(I+C*3)+VX,YS(I+C*3)+VY,15
  882.          Bob 5,XS(I+C*4)+VX,YS(I+C*4)+VY,15
  883.          Bob 6,XS(I+C*5)+VX,YS(I+C*5)+VY,15
  884.          If Mouse Key Then Goto PARFIN
  885.          Wait Vbl 
  886.       Next I
  887.    Next J
  888.    PLU:
  889.    Bob Off 
  890.    Shift Off 
  891.    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
  892.    Wait 30
  893.    Fade 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  894.    Wait 30
  895.    Cls 0 : Screen Swap : Cls 0
  896.    Goto CHARI
  897.    PARFIN:
  898.    Fade 5 : Wait 5*15
  899.    Screen 0 : Cls 0
  900.    Screen Close 1
  901. End Proc
  902. Procedure FAST
  903.    Erase 1
  904.    Screen 0 : Cls 0
  905.    Screen Open 1,400,256,32,Lowres : Curs Off : Flash Off : Cls 0
  906.    Screen Hide 1
  907.    For I=3 To 31 : Add C,128
  908.       Colour I,C
  909.       Ink I : Draw 0,100+I To 400,100+I
  910.    Next I
  911.    For I=31 To 3 Step -1 : Ink I : Draw 0,162-I To 400,162-I : Next I
  912.    Screen Show 1
  913.    Screen 0 : Ink 2,0,1 : Colour 1,$0
  914.    Text 10,15,"Fast loading..." : Get Bob 20,0,0 To 16*8,20 : Cls 0
  915.    Screen 1
  916.    Bob Draw : Colour 2,$FFF : For Y=90 To 120 : Bob 1,105,Y,20 : Wait Vbl : Next Y
  917.    '
  918. End Proc
  919. Procedure SECRET
  920.    SC=2
  921.    FAST
  922.    ALL$=DRIV$+"bold.abk"
  923.    Load ALL$,SC : Fade 4 : Wait 4*15 : Cls 0
  924.    Cls 0 : Screen 0 : Cls 0 : Screen 1 : Cls 0 : Screen To Front 1
  925.    For I=0 To 31 : Colour I,$0 : Next I
  926.    Screen 1
  927.    Screen Open 2,320,100,16,Lowres : Curs Off : Flash Off : Cls 0
  928.    Screen Open 3,320,150,16,Lowres : Curs Off : Flash Off : Cls 0
  929.    Screen 0 : Cls 0
  930.    Screen 1
  931.    YY=30 : YYY=170
  932.    Screen Display 2,0,YY,,
  933.    Screen Display 3,0,YYY,,
  934.    Screen To Front 2
  935.    Screen To Front 3
  936.    Unpack SC To 0
  937.    Screen 1
  938.    Screen Copy 0,0,0,183,235 To 1,68,10
  939.    Screen To Back 0
  940.    Fade 5 To 0
  941.    Wait 5*15+100
  942.    For I=1 To 150
  943.       Dec YY : Inc YYY : Inc YYY
  944.       Screen Display 2,0,YY,,
  945.       Screen Display 3,0,YYY,,
  946.       Wait Vbl : Wait 2
  947.    Next I
  948.    Screen Close 2 : Screen Close 3
  949.    Data "Cette demo touche a sa fin","Nous esperons vous avoir"
  950.    Data "Diverti agreablement","Tres bientot nous aurons"
  951.    Data "le plaisir de vous presenter","de nouvelles productions"
  952.    Data "en attendant vous pouvez","vous procurer nos dernieres"
  953.    Data "productions...","- FANTASY SPACE I -"
  954.    Data "- FANTASY SPACE II -","- JAPANESS SEXY FOLIES -"
  955.    Data "- TOTAL COPPER -","Ecrivez a"
  956.    Data "- Blue Max -","Eric Boez"
  957.    Data "B.P.11","59440 Avesnelles"
  958.    Data "France","Tous les Demons"
  959.    Data "Vous crachent leurs","meilleurs voeux"
  960.    Data "Pour l'annee 1991","Happy New Year"
  961.    Data "Domo Domo","..."
  962.    Data "Over !","..."
  963.    Ink 29,0,0
  964.    For I=1 To 28
  965.       Read A$
  966.       LP=Len(A$)*8
  967.       LP=320-LP
  968.       LP=LP/2
  969.       Text LP,7,A$ : Wait 150 : SCRO2
  970.       Exit If Mouse Key
  971.    Next I
  972.    Fade 8
  973.    For J=63 To 0 Step -1 : Mvolume J : Wait 3 : Next J
  974.    Wait 8*15 : Wait 100
  975.    Music Off 
  976. End Proc