home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / sourcecode / demos / bouncy.amos / bouncy.amosSourceCode < prev    next >
AMOS Source Code  |  1991-10-18  |  8KB  |  330 lines

  1. Set Buffer 15
  2. DSTART
  3. LOOG
  4. RSCROLL
  5. '
  6. Procedure DSTART
  7.    Dim X$(38),X(38),Y(38)
  8.    Z$="WELL WHAT DO YOU THINK OF THIS !!!!    SEVEN SCROLL TEXT'S ON AT THE SAME TIME !!!!"
  9.    Z$=Z$+" BUT THIS IS A BIT BORING !    SO WE'LL MOVE ON TO SOMETHING A BIT MORE "
  10.    Z$=Z$+"BOUNCY !?!?!?!?!?!?!?        WATCH THIS SPACE !                      "
  11.    '
  12.    Auto View Off 
  13.    Unpack 7 To 1 : Screen Hide 1 : Hide On 
  14.    Palette $0,$40,$50,$60,$70,$80,$90,$A0
  15.    Screen Open 0,400,Screen Height,Screen Colour,Lowres
  16.    Screen Display 0,120,45,,24
  17.    Double Buffer 
  18.    Autoback 0
  19.    Curs Off 
  20.    Cls 0
  21.    Flash Off 
  22.    Screen Copy 1,0,200,39,210 To 0,200,0
  23.    Palette $0,$77,$88,$99,$AA,$BB,$CC,$DD
  24.    SCRL$="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,':!()?190 "
  25.    Wait Vbl 
  26.    Curs Off 
  27.    '
  28.    Screen Clone 2
  29.    Screen Display 2,,82,,
  30.    Palette $0,$4,$5,$6,$7,$8,$9,$A
  31.    Screen Clone 3
  32.    Screen Display 3,,118,,
  33.    Palette $0,$404,$505,$606,$707,$808,$909,$A0A
  34.    Screen Clone 4
  35.    Screen Display 4,,155,,
  36.    Palette $0,$400,$500,$600,$700,$800,$900,$A00
  37.    Screen Clone 5
  38.    Screen Display 5,,193,,
  39.    Palette $0,$440,$550,$660,$770,$880,$990,$AA0
  40.    Screen Clone 6
  41.    Screen Display 6,,230,,
  42.    Get Palette 1
  43.    Screen Clone 7
  44.    Screen Display 7,,270,,
  45.    Palette $0,$444,$555,$666,$777,$888,$999,$AAA
  46.    '
  47.    Screen To Front 0
  48.    Restore SD
  49.    For F=1 To 38
  50.       Read TEMP$,X(F),Y(F)
  51.    Next F
  52.    Goto STDEM
  53.    '
  54.    SD:
  55.    Data "A",0,0
  56.    Data "B",39,0
  57.    Data "C",78,0
  58.    Data "D",117,0
  59.    Data "E",157,0
  60.    Data "F",196,0
  61.    Data "G",234,0
  62.    Data "H",273,0
  63.    Data "I",0,25
  64.    Data "J",39,25
  65.    Data "K",78,25
  66.    Data "L",117,25
  67.    Data "M",157,25
  68.    Data "N",196,25
  69.    Data "O",234,25
  70.    Data "P",273,25
  71.    Data "Q",0,50
  72.    Data "R",39,50
  73.    Data "S",78,50
  74.    Data "T",117,50
  75.    Data "U",157,50
  76.    Data "V",196,50
  77.    Data "W",234,50
  78.    Data "X",273,50
  79.    Data "Y",0,75
  80.    Data "Z",39,75
  81.    Data ".",78,75
  82.    Data ",",117,75
  83.    Data "'",157,75
  84.    Data ":",196,75
  85.    Data "!",234,75
  86.    Data "(",273,75
  87.    Data ")",0,101
  88.    Data "?",39,101
  89.    Data "1",78,101
  90.    Data "9",117,101
  91.    Data "0",157,101
  92.    Data " ",196,101
  93.    Rem
  94.    Rem ********* SCROLL TEXT ROUTINE ********** 
  95.    '
  96.    STDEM:
  97.    SP=6
  98.    TEMP=Varptr(Z$)
  99.    TEMP2=Len(Z$)
  100.    TEMP:
  101.    Data $100,$200,$300,$400,$500,$600,$700,$800,$900,$A00,$B00,$C00,$D00,$E00,$F00
  102.    Wait Vbl : View 
  103.    For LOP=0 To TEMP2-1
  104.       E=Instr(SCRL$,Chr$(Peek(TEMP+LOP)))
  105.       Screen Copy 1,X(E),Y(E),X(E)+35,Y(E)+25 To 0,350,0
  106.       For LOP1=1 To 35 Step SP
  107.          Screen Swap 
  108.          Wait Vbl 
  109.          Screen Copy Physic(0),0,0,400,100 To Logic(0),-SP,0
  110.       Next LOP1
  111.    Next LOP
  112.    For A=7 To 0 Step -1
  113.       Screen Hide A
  114.    Next A
  115.    For A=7 To 0 Step -1
  116.       Screen Close A
  117.    Next A
  118.    Wait 100
  119. End Proc
  120. '
  121. Procedure LOOG
  122.    Auto View On 
  123.    Rem ******************** LOGO ******************** 
  124.    Close Workbench 
  125.    Close Editor 
  126.    Screen Open 0,320,200,2,Lowres : Curs Off : Hide On 
  127.    Unpack 5 To 6
  128.    Screen Hide 6
  129.    Screen Close 0
  130.    Screen Open 5,960,200,16,Lowres
  131.    Flash Off : Curs Off : Cls 0
  132.    Screen Display 5,120,40,,80
  133.    Screen Offset 5,305,0
  134.    Wait Vbl 
  135.    Get Palette 6
  136.    Colour Back Colour(0)
  137.    View 
  138.    Wait Vbl 
  139.    Y1=70
  140.    Y2=71
  141.    Timer=0
  142.    Do 
  143.       Y3=0
  144.       Do 
  145.          Screen Copy 6,0,Y1,320,Y2 To 5,320,Y3
  146.          Inc Y3
  147.          Exit If Y3>Y1
  148.       Loop 
  149.       Dec Y1
  150.       Dec Y2
  151.       Exit If Y1<0
  152.    Loop 
  153.    '
  154.    Screen Close 6
  155.    '
  156.    Music 1
  157.    Volume 0
  158.    For A=0 To 63
  159.       Volume A : Wait 2
  160.    Next A
  161. End Proc
  162. '
  163. Procedure RSCROLL
  164.    Dim X$(38),X(38),Y(38)
  165.    ANGLE#=0
  166.    SC$="OK !   THIS IS YET ANOTHER OF MY DEMOS THAT I DIDN'T RELEASE   BUT"
  167.    SC$=SC$+" NOW YOU CAN LOOK AT THE CODE !!     RIGHT I HOPE YOU READ THE"
  168.    SC$=SC$+" READ ME FILE BEFORE STARTING TO RUN ANY OF THESE PROGRAMS "
  169.    SC$=SC$+"  IF YOU DIDN'T THEN I WILL JUST TELL YOU ABOUT THE DISK MAG "
  170.    SC$=SC$+"THAT I WILL BE RELEASING SOON.    IT WILL BE CRAMMED PACKED "
  171.    SC$=SC$+"WITH ARTICLES, PROGRAMS, GRAPHICS, BOBS FOR YOU TO USE ETC, ETC "
  172.    SC$=SC$+"  SEND IN YOU STUFF TO MY ADDRESS SHOWN IN THE FILE  AND KEEP "
  173.    SC$=SC$+"AN EYE OUT IN THE AMOS PD LIBRARY !!!  IT'S GOING TO BE MEGA !!!! "
  174.    SC$=SC$+"        SEE YOU SOON !!!"
  175.    SC$=SC$+"                  "
  176.    '
  177.    Unpack 6 To 6 : Screen Hide 6
  178.    Screen Open 0,400,Screen Height,Screen Colour,Lowres
  179.    Screen Display 0,120,245,,55
  180.    Double Buffer 
  181.    Autoback 0
  182.    Curs Off 
  183.    Cls 0
  184.    Flash Off 
  185.    Screen Copy 6,0,200,39,210 To 0,200,0
  186.    Get Palette 6
  187.    SCRL$="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,':!()?190 "
  188.    Wait Vbl 
  189.    Curs Off 
  190.    Set Rainbow 0,0,58,"","","(1,2,28)(1,-2,28)"
  191.    Rainbow 0,0,245,58
  192.    Channel 0 To Rainbow 0
  193.    Channel 1 To Screen Display 0
  194.    Amal 0,"Let R0=-5;Jump L;X:Let R0=5;L:Let Y=Y-R0; Let R1=R1+1;Pause; If Y>250 Jump X;If R1>3 Jump M;Jump L; M: Let R0=R0-1; Let R1=0;  Jump L"
  195.    Amal 1,"Let R0=-5;Jump L;X:Let R0=5;L:Let Y=Y-R0; Let R1=R1+1;Pause; If Y>250 Jump X;If R1>3 Jump M;Jump L; M: Let R0=R0-1; Let R1=0;  Jump L"
  196.    '
  197.    INITVU
  198.    Channel 12 To Rainbow 1
  199.    Channel 13 To Rainbow 2
  200.    Channel 14 To Rainbow 3
  201.    Channel 15 To Screen Display 5
  202.    Channel 5 To Screen Offset 5
  203.    Amal 12,"Let R0=-10;Jump L;X:Let R0=10;L:Let Y=Y-R0; Let R1=R1+1;Pause; If Y>190 Jump X;If R1>2 Jump M;Jump L; M: Let R0=R0-1; Let R1=0;  Jump L"
  204.    Amal 13,"Let R0=-10;Jump L;X:Let R0=10;L:Let Y=Y-R0; Let R1=R1+1;Pause; If Y>200 Jump X;If R1>2 Jump M;Jump L; M: Let R0=R0-1; Let R1=0;  Jump L"
  205.    Amal 14,"Let R0=-10;Jump L;X:Let R0=10;L:Let Y=Y-R0; Let R1=R1+1;Pause; If Y>210 Jump X;If R1>2 Jump M;Jump L; M: Let R0=R0-1; Let R1=0;  Jump L"
  206.    Amal 15,"Let R0=-8;Jump L;X:Let R0=8;L:Let Y=Y-R0; Let R1=R1+1;Pause; If Y>140 Jump X;If R1>2 Jump M;Jump L; M: Let R0=R0-1; Let R1=0;  Jump L"
  207.    Amal 5,"L: M 200,0,100; M -400,0,200; M 200,0,100; J L"
  208.    Amal On 
  209.    '
  210.    Screen To Front 0
  211.    Screen 0
  212.    Flash 1,"(200,5)(400,5)(600,5)(800,5)(a00,5)(c00,5)(e00,10)(c00,5)(a00,5)(800,5)(600,5)(400,5)"
  213.    Restore SD
  214.    For F=1 To 38
  215.       Read TEMP$,X(F),Y(F)
  216.    Next F
  217.    Goto STDEM
  218.    '
  219.    SD:
  220.    Data "A",0,0
  221.    Data "B",39,0
  222.    Data "C",78,0
  223.    Data "D",117,0
  224.    Data "E",157,0
  225.    Data "F",196,0
  226.    Data "G",234,0
  227.    Data "H",273,0
  228.    Data "I",0,25
  229.    Data "J",39,25
  230.    Data "K",78,25
  231.    Data "L",117,25
  232.    Data "M",157,25
  233.    Data "N",196,25
  234.    Data "O",234,25
  235.    Data "P",273,25
  236.    Data "Q",0,50
  237.    Data "R",39,50
  238.    Data "S",78,50
  239.    Data "T",117,50
  240.    Data "U",157,50
  241.    Data "V",196,50
  242.    Data "W",234,50
  243.    Data "X",273,50
  244.    Data "Y",0,75
  245.    Data "Z",39,75
  246.    Data ".",78,75
  247.    Data ",",117,75
  248.    Data "'",157,75
  249.    Data ":",196,75
  250.    Data "!",234,75
  251.    Data "(",273,75
  252.    Data ")",0,101
  253.    Data "?",39,101
  254.    Data "1",78,101
  255.    Data "9",117,101
  256.    Data "0",157,101
  257.    Data " ",196,101
  258.    Rem
  259.    Rem ********* SCROLL TEXT ROUTINE ********** 
  260.    '
  261.    STDEM:
  262.    SP=7
  263.    Do 
  264.       TEMP=Varptr(SC$)
  265.       TEMP2=Len(SC$)
  266.       TEMP:
  267.       Data $100,$200,$300,$400,$500,$600,$700,$800,$900,$A00,$B00,$C00,$D00,$E00,$F00
  268.       Wait Vbl : View 
  269.       For LOP=0 To TEMP2-1
  270.          Y=Sin(ANGLE#)*15+16
  271.          E=Instr(SCRL$,Chr$(Peek(TEMP+LOP)))
  272.          Screen Copy 6,X(E),Y(E),X(E)+35,Y(E)+25 To 0,350,Y
  273.          For LOP1=1 To 36 Step SP
  274.             If Mouse Key=1 Then QUIT
  275.             Screen Swap 
  276.             Wait Vbl 
  277.             Screen Copy Physic(0),0,0,400,100 To Logic(0),-SP,0
  278.          Next LOP1
  279.          ANGLE#=ANGLE#+Pi#/10
  280.          If ANGLE#>=PI*2 Then ANGLE=0
  281.       Next LOP
  282.    Loop 
  283. End Proc
  284. '
  285. Procedure QUIT
  286.    While Screen<>-1
  287.       Screen Screen
  288.       Fade 5 : Wait 75
  289.       Screen Close Screen
  290.    Wend 
  291.    For A=0 To 3
  292.       Rainbow Del A : Wait 10
  293.    Next A
  294.    For A=63 To 0 Step -1
  295.       Volume A : Wait 2
  296.    Next A
  297.    Music Off 
  298.    End 
  299. End Proc
  300. '
  301. Procedure INITVU
  302.    For I=2 To 4
  303.       Set Rainbow I-1,0,256,"","",""
  304.       '
  305.       B=15
  306.       For L=0 To 16*15 Step 16
  307.          If I=2 Then MBOW[L,B,I-1,256,0,0]
  308.          If I=3 Then MBOW[L,B,I-1,0,0,16]
  309.          If I=4 Then MBOW[L,B,I-1,0,0,1]
  310.          Dec B
  311.       Next L
  312.       '
  313.    Next I
  314.    Rainbow 1,0,50,16
  315.    Rainbow 2,0,70,16
  316.    Rainbow 3,0,90,16
  317. End Proc
  318. '
  319. Procedure MBOW[L,X,N,R,G,B]
  320.    L1=L+7
  321.    For I=X To 0 Step -2
  322.       Rain(N,L1)=I*R+I*G+I*B
  323.       Dec L1
  324.    Next I
  325.    L1=L+8
  326.    For I=X To 0 Step -2
  327.       Rain(N,L1)=I*R+I*G+I*B
  328.       Inc L1
  329.    Next I
  330. End Proc