home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 126-150 / apd131 / d3 / d3.amosSourceCode
Encoding:
AMOS Source Code  |  1992-10-10  |  7.0 KB  |  182 lines

  1. Proc S
  2. Procedure S
  3.    Break Off 
  4.    Close Editor 
  5.    Close Workbench 
  6.    Screen Open 0,360,300,2,L
  7.    Screen Display 0,127,50,,
  8.    Hide 
  9.    Degree 
  10.    Palette $0,$FFF
  11.    Cls 0
  12.    Double Buffer 
  13.    Autoback 0
  14.    Screen Swap 
  15.    Dim X#(359)
  16.    Dim Y#(359)
  17.    For I=0 To 359
  18.       X#(I)=Cos(I)
  19.       Y#(I)=Sin(I)
  20.    Next I
  21.    Set Rainbow 0,1,300,"(1,1,15)(1,-1,15)","",""
  22.    Rainbow 0,0,0,300
  23.    Do 
  24.       For I=0 To 359
  25.          Draw X#((I) mod 360)*Z#+160,Y#((I) mod 360)*Z#+100 To X#((I+144) mod 360)*Z#+160,Y#((I+144) mod 360)*Z#+100
  26.          Draw X#((72+I) mod 360)*Z#+160,Y#((72+I) mod 360)*Z#+100 To X#((72+I+144) mod 360)*Z#+160,Y#((72+I+144) mod 360)*Z#+100
  27.          Draw X#((144+I) mod 360)*Z#+160,Y#((144+I) mod 360)*Z#+100 To X#((144+I+144) mod 360)*Z#+160,Y#((144+I+144) mod 360)*Z#+100
  28.          Draw X#((216+I) mod 360)*Z#+160,Y#((216+I) mod 360)*Z#+100 To X#((216+I+144) mod 360)*Z#+160,Y#((216+I+144) mod 360)*Z#+100
  29.          Draw X#((288+I) mod 360)*Z#+160,Y#((288+I) mod 360)*Z#+100 To X#((288+I+144) mod 360)*Z#+160,Y#((288+I+144) mod 360)*Z#+100
  30.          Screen Swap 
  31.          Wait Vbl 
  32.          Cls 0
  33.          A#=A#+0.3
  34.          If A#>30.6 Then Fade 1 : Wait 50 : Goto MAIN : Screen Hide 0
  35.          Z#=A#*A#
  36.       Next I
  37.    Loop 
  38.    MAIN:
  39.    Set Rainbow 0,0,16,"","",""
  40.    Rainbow 0,0,0,0
  41.    Screen To Front 7
  42.    Screen Open 0,54,36,2,L : Screen Hide 0 : Curs Off 
  43.    Degree 
  44.    Dim X(30) : Dim Y(30)
  45.    A=0
  46.    For I=1 To 30
  47.       X(I)=A
  48.       A=A+32
  49.       If A=320 Then A=0
  50.    Next I
  51.    For I=1 To 10
  52.       Y(I)=0
  53.    Next I
  54.    For I=11 To 20
  55.       Y(I)=32
  56.    Next I
  57.    For I=21 To 30
  58.       Y(I)=64
  59.    Next I
  60.    Rem le .=[  !=\  ?=]   =^  the end=_ asc(95) 
  61.    Gosub CHAINE
  62.    Load "fonte",13
  63.    Unpack 13 To 4 : Screen Hide 4
  64.    Erase 13
  65.    Screen Open 3,320,96,8,L : Screen Hide 3 : Flash Off : Curs Off : Cls 0 : Get Palette 4 : Screen Copy 4,0,0,320,96 To 3,0,0 : Screen Close 4
  66.    Screen Open 2,640,33,8,L : Curs Off : Flash Off : Cls 0 : Get Palette 3 : Screen Display 2,128,250,320,33
  67.    Load "logo",14
  68.    If Length(14)<>1554
  69.       End 
  70.    End If 
  71.    Unpack 14 To 7 : Screen Hide 7 : Screen Open 1,320,32,8,L : Screen Hide 1 : Screen Display 1,128,100,320,32 : Flash Off : Cls 0 : Get Palette 7 : Screen Copy 7,0,0,320,32 To 1,75,0 : For I=0 To 7 : Colour I,$0 : Next I
  72.    Set Rainbow 3,0,16,"","",""
  73.    Rainbow 3,0,0,0
  74.    Screen Close 7
  75.    Erase 14
  76.    ETOILE
  77.    Load "lux1",3
  78.    Screen 0
  79.    Screen Hide 0 : Screen Display 0,128,50,320,200 : Flash Off : For I=0 To 15 : Colour I,$0 : Next I
  80.    Channel 1 To Screen Display 1 : Amal 1,"Loop: M 0,100,50; M 0,-100,50; Jump Loop"
  81.    Channel 2 To Rainbow 0 : Amal 2,"Loop: M 0,100,50; M 0,-100,50; Jump Loop"
  82.    Channel 0 To Screen Offset 0 : MM$="Loop: If RA=1 Jump Toto; If RA=2 Jump Dodo; Jump Loop"
  83.    MM$=MM$+"Toto: For R1=0 To 2; Let X=0; For R0=0 T0 63; Let X=R0*5; Next R0; Next R1; Let RB=1; Jump Loop"
  84.    MM$=MM$+"Dodo: For R1=0 To 2; Let X=320; For R0=-63 T0 0; Let X=R0*-5; Next R0; Next R1; Let RB=1; Jump Loop"
  85.    Amal 0,MM$
  86.    RASTER:
  87.    Data $0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$A,$B,$C,$D,$E,$F,$10F,$20E,$30D,$40C,$50B,$60A,$709,$808,$907,$A06,$B05,$C04,$D03,$E02,$F01,$F00
  88.    Data $F01,$F02,$F03,$F04,$F05,$F06,$F07,$F08,$F09,$F0A,$F0B,$F0C,$F0D,$F0E,$F0F,$F0F,$F0F,$E0E,$D0D,$C0C,$B0B,$A0A,$909,$808,$707,$606,$505,$404,$303,$202,$101,$0
  89.    Set Rainbow 0,0,32,"(1,1,15)(1,-1,15)","","" : Rainbow 0,0,100,32 : Screen To Front 1 : Screen Show 0 : Screen Show 1 : Fade 1,$0,,,,,,,,,,,,,,,,,$FFF
  90.    Set Rainbow 1,7,64,"","","" : Rainbow 1,0,250,32
  91.    Set Rainbow 2,0,32,"","(2,1,15)","" : Rainbow 2,0,285,32
  92.    For I=0 To 63
  93.       Read A
  94.       Rain(1,I)=A
  95.    Next I
  96.    Timer=500
  97.    Wait 100
  98.    Screen 1 : Fade 5,$0,$FFF,$DDF,$115,$99D,$77B,$559,$337
  99.    Wait 50
  100.    Screen 0 : Fade 5,$0,$FFF,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
  101.    Screen To Front 1 : Screen Show 0 : Screen Show 1 : Amal On : Led Off : Music 1
  102.    LG=Len(CHAINE$)
  103.    Dec LG
  104.    Do 
  105.       For I=1 To 80 Step 8
  106.          BOUCLE:
  107.          A=Asc(Mid$(CHAINE$,CPT,1))-64 : Inc CPT
  108.          If CPT>=LG Then CPT=1
  109.          If A=31 Then CPT=1 : Goto BOUCLE
  110.          For J=0 To 28 Step 4
  111.             Screen Copy 3,X(A)+J,Y(A),X(A)+4+J,Y(A)+32 To 2,I*4+320+J-12,1 : Screen Copy 3,X(A)+J,Y(A),X(A)+4+J,Y(A)+32 To 2,I*4+J-12,1 : Screen Offset 2,I*4+J,0
  112.             Rainbow 1,M,250,32
  113.             Wait Vbl 
  114.             Inc M
  115.             If M=63 Then M=0
  116.             Amreg(0)=Rnd(1)+1
  117.             If Amreg(1)=1 and C=0 and Z=0 Then Amal Freeze 0 : Shift Up 1,1,15,1 : Timer=0 : C=1
  118.             If Amreg(1)=1 and C=0 and Z=1 Then Amal Freeze 0 : Shift Down 1,1,15,1 : Timer=0 : C=1
  119.             If Timer>77 and C=1 Then Shift Off : Amal On 0 : C=0 : Amreg(1)=0 : Z=Rnd(1)
  120.             If Mouse Key=1
  121.                Amal Off 
  122.                Music Off 
  123.                For N=0 To 2
  124.                   Set Rainbow N,0,16,"","",""
  125.                   Rainbow N,0,0,0
  126.                Next N
  127.                Screen Display 0,128,500,320,50
  128.                Screen Display 1,128,500,320,50
  129.                Screen Display 3,128,500,320,50
  130.                Screen Display 2,128,500,320,50
  131.                Screen Close 1
  132.                Screen Close 2
  133.                Screen Close 3
  134.                Run "menu"
  135.             End If 
  136.             Inc JUJU
  137.          Next J
  138.       Next I
  139.    Loop 
  140.    CHAINE:
  141.    CHAINE$="^SYNTEX^IS^PROUD^TO^PRESENT^A^NEW^DEMO^CODED^WITH^AMOS^BASIC\\\"
  142.    CHAINE$=CHAINE$+"THE^MUSIC^WAS^DONE^BY^LUX^INTERIOR^AND^THIS^DEMO^WAS^CODED^BY^MAXIMUM^OVERDRIVE["
  143.    CHAINE$=CHAINE$+"THIS^DEMO^BELONGS^TO^OUR^SECOND^DISK^DEMO^AND^WE^THINK^THAT^IT^IS^BETTER^THAN^THE^OLD^SONG^DISK["
  144.    CHAINE$=CHAINE$+"WE^WANT^LATTER^DOING^A^MEGADEMO^WHEN^THE^COMPILATOR^WILL^DO["
  145.    CHAINE$=CHAINE$+"^^^^^^^HELLO^TO^^THE^HERETIQUES^^^ALCATRAZ^^^VISION^^^BUD^BRAIN^^^RED^SECTOR^^^KEFRENS^^^"
  146.    CHAINE$=CHAINE$+"DRAGONS^^^CRIONICS^^^REBELS^^^DEATH^STAR^^^SCOOPEX^^^MEGAFORCE["
  147.    CHAINE$=CHAINE$+"^^^^^^^HELLO^TO^THE^DOG^OF^THE^NEIGHBOUR^^^HE^HE^HE^^["
  148.    CHAINE$=CHAINE$+"I^HOPE^THAT^THIS^DISK^DEMO^WILL^ENJOY^YOU^"
  149.    CHAINE$=CHAINE$+"THIS^SECOND^DISK^DEMO^WAS^CODED^IN^DECEMBER^AND^JUST^FINISHED^AT^CHRISTMAS^"
  150.    CHAINE$=CHAINE$+"SO^I^DONT^KNOW^WHAT^I^CAN^SAY^NOW^SO^HAVE^A^NICE^DAY\\\\\"
  151.    Return 
  152. End Proc
  153. ETOILE
  154. Procedure ETOILE
  155.    Screen Open 0,640,200,16,L
  156.    Screen Display 0,128,50,320,200
  157.    Flash Off 
  158.    Curs Off 
  159.    Cls 0
  160.    Screen Hide 0
  161.    Palette $0,$FFF,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
  162.    Degree 
  163.    AAA:
  164.    Data 141,87,110,82,49,71,141,110,125,55,98,132,116,94,132,60,90,117,99,139,41,83,145,139,120,147,117,121,143,140,150,160,170,180,190,200,210,220,222,224,230,232,234,236,238,240
  165.    BBB:
  166.    Data 7,3,1,13,9,5,9,7,11,15,1,9,1,11,5,7,1,3,11,9,1,1,7,3,7,11,5,15,3,15,2,5,6,7,2,5,6,15,3,8,2,1,5,8,9,6
  167.    Restore AAA
  168.    Dim EX(45) : For I=1 To 45 : Read B : EX(I)=B : Next I
  169.    Restore BBB
  170.    Dim EE(45) : For I=1 To 45 : Read B : EE(I)=B : Next I
  171.    For J=1 To 45
  172.       X=EX(J)
  173.       A=EE(J)
  174.       For I=0 To 359 Step 4
  175.          Ink A
  176.          Inc A
  177.          If A=16 Then A=1
  178.          Plot Cos(I)*X+160,Sin(I)*X+100
  179.       Next I
  180.    Next J
  181.    Screen Copy 0,0,0,320,200 To 0,320,0
  182. End Proc