home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
351-375
/
apd352
/
programs
/
bouncy.amos
/
bouncy.amosSourceCode
< prev
next >
Wrap
AMOS Source Code
|
1991-10-18
|
8KB
|
330 lines
Set Buffer 15
DSTART
LOOG
RSCROLL
'
Procedure DSTART
Dim X$(38),X(38),Y(38)
Z$="WELL WHAT DO YOU THINK OF THIS !!!! SEVEN SCROLL TEXT'S ON AT THE SAME TIME !!!!"
Z$=Z$+" BUT THIS IS A BIT BORING ! SO WE'LL MOVE ON TO SOMETHING A BIT MORE "
Z$=Z$+"BOUNCY !?!?!?!?!?!?!? WATCH THIS SPACE ! "
'
Auto View Off
Unpack 7 To 1 : Screen Hide 1 : Hide On
Palette $0,$40,$50,$60,$70,$80,$90,$A0
Screen Open 0,400,Screen Height,Screen Colour,Lowres
Screen Display 0,120,45,,24
Double Buffer
Autoback 0
Curs Off
Cls 0
Flash Off
Screen Copy 1,0,200,39,210 To 0,200,0
Palette $0,$77,$88,$99,$AA,$BB,$CC,$DD
SCRL$="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,':!()?190 "
Wait Vbl
Curs Off
'
Screen Clone 2
Screen Display 2,,82,,
Palette $0,$4,$5,$6,$7,$8,$9,$A
Screen Clone 3
Screen Display 3,,118,,
Palette $0,$404,$505,$606,$707,$808,$909,$A0A
Screen Clone 4
Screen Display 4,,155,,
Palette $0,$400,$500,$600,$700,$800,$900,$A00
Screen Clone 5
Screen Display 5,,193,,
Palette $0,$440,$550,$660,$770,$880,$990,$AA0
Screen Clone 6
Screen Display 6,,230,,
Get Palette 1
Screen Clone 7
Screen Display 7,,270,,
Palette $0,$444,$555,$666,$777,$888,$999,$AAA
'
Screen To Front 0
Restore SD
For F=1 To 38
Read TEMP$,X(F),Y(F)
Next F
Goto STDEM
'
SD:
Data "A",0,0
Data "B",39,0
Data "C",78,0
Data "D",117,0
Data "E",157,0
Data "F",196,0
Data "G",234,0
Data "H",273,0
Data "I",0,25
Data "J",39,25
Data "K",78,25
Data "L",117,25
Data "M",157,25
Data "N",196,25
Data "O",234,25
Data "P",273,25
Data "Q",0,50
Data "R",39,50
Data "S",78,50
Data "T",117,50
Data "U",157,50
Data "V",196,50
Data "W",234,50
Data "X",273,50
Data "Y",0,75
Data "Z",39,75
Data ".",78,75
Data ",",117,75
Data "'",157,75
Data ":",196,75
Data "!",234,75
Data "(",273,75
Data ")",0,101
Data "?",39,101
Data "1",78,101
Data "9",117,101
Data "0",157,101
Data " ",196,101
Rem
Rem ********* SCROLL TEXT ROUTINE **********
'
STDEM:
SP=6
TEMP=Varptr(Z$)
TEMP2=Len(Z$)
TEMP:
Data $100,$200,$300,$400,$500,$600,$700,$800,$900,$A00,$B00,$C00,$D00,$E00,$F00
Wait Vbl : View
For LOP=0 To TEMP2-1
E=Instr(SCRL$,Chr$(Peek(TEMP+LOP)))
Screen Copy 1,X(E),Y(E),X(E)+35,Y(E)+25 To 0,350,0
For LOP1=1 To 35 Step SP
Screen Swap
Wait Vbl
Screen Copy Physic(0),0,0,400,100 To Logic(0),-SP,0
Next LOP1
Next LOP
For A=7 To 0 Step -1
Screen Hide A
Next A
For A=7 To 0 Step -1
Screen Close A
Next A
Wait 100
End Proc
'
Procedure LOOG
Auto View On
Rem ******************** LOGO ********************
Close Workbench
Close Editor
Screen Open 0,320,200,2,Lowres : Curs Off : Hide On
Unpack 5 To 6
Screen Hide 6
Screen Close 0
Screen Open 5,960,200,16,Lowres
Flash Off : Curs Off : Cls 0
Screen Display 5,120,40,,80
Screen Offset 5,305,0
Wait Vbl
Get Palette 6
Colour Back Colour(0)
View
Wait Vbl
Y1=70
Y2=71
Timer=0
Do
Y3=0
Do
Screen Copy 6,0,Y1,320,Y2 To 5,320,Y3
Inc Y3
Exit If Y3>Y1
Loop
Dec Y1
Dec Y2
Exit If Y1<0
Loop
'
Screen Close 6
'
Music 1
Volume 0
For A=0 To 63
Volume A : Wait 2
Next A
End Proc
'
Procedure RSCROLL
Dim X$(38),X(38),Y(38)
ANGLE#=0
SC$="OK ! THIS IS YET ANOTHER OF MY DEMOS THAT I DIDN'T RELEASE BUT"
SC$=SC$+" NOW YOU CAN LOOK AT THE CODE !! RIGHT I HOPE YOU READ THE"
SC$=SC$+" READ ME FILE BEFORE STARTING TO RUN ANY OF THESE PROGRAMS "
SC$=SC$+" IF YOU DIDN'T THEN I WILL JUST TELL YOU ABOUT THE DISK MAG "
SC$=SC$+"THAT I WILL BE RELEASING SOON. IT WILL BE CRAMMED PACKED "
SC$=SC$+"WITH ARTICLES, PROGRAMS, GRAPHICS, BOBS FOR YOU TO USE ETC, ETC "
SC$=SC$+" SEND IN YOU STUFF TO MY ADDRESS SHOWN IN THE FILE AND KEEP "
SC$=SC$+"AN EYE OUT IN THE AMOS PD LIBRARY !!! IT'S GOING TO BE MEGA !!!! "
SC$=SC$+" SEE YOU SOON !!!"
SC$=SC$+" "
'
Unpack 6 To 6 : Screen Hide 6
Screen Open 0,400,Screen Height,Screen Colour,Lowres
Screen Display 0,120,245,,55
Double Buffer
Autoback 0
Curs Off
Cls 0
Flash Off
Screen Copy 6,0,200,39,210 To 0,200,0
Get Palette 6
SCRL$="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,':!()?190 "
Wait Vbl
Curs Off
Set Rainbow 0,0,58,"","","(1,2,28)(1,-2,28)"
Rainbow 0,0,245,58
Channel 0 To Rainbow 0
Channel 1 To Screen Display 0
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"
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"
'
INITVU
Channel 12 To Rainbow 1
Channel 13 To Rainbow 2
Channel 14 To Rainbow 3
Channel 15 To Screen Display 5
Channel 5 To Screen Offset 5
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"
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"
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"
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"
Amal 5,"L: M 200,0,100; M -400,0,200; M 200,0,100; J L"
Amal On
'
Screen To Front 0
Screen 0
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)"
Restore SD
For F=1 To 38
Read TEMP$,X(F),Y(F)
Next F
Goto STDEM
'
SD:
Data "A",0,0
Data "B",39,0
Data "C",78,0
Data "D",117,0
Data "E",157,0
Data "F",196,0
Data "G",234,0
Data "H",273,0
Data "I",0,25
Data "J",39,25
Data "K",78,25
Data "L",117,25
Data "M",157,25
Data "N",196,25
Data "O",234,25
Data "P",273,25
Data "Q",0,50
Data "R",39,50
Data "S",78,50
Data "T",117,50
Data "U",157,50
Data "V",196,50
Data "W",234,50
Data "X",273,50
Data "Y",0,75
Data "Z",39,75
Data ".",78,75
Data ",",117,75
Data "'",157,75
Data ":",196,75
Data "!",234,75
Data "(",273,75
Data ")",0,101
Data "?",39,101
Data "1",78,101
Data "9",117,101
Data "0",157,101
Data " ",196,101
Rem
Rem ********* SCROLL TEXT ROUTINE **********
'
STDEM:
SP=7
Do
TEMP=Varptr(SC$)
TEMP2=Len(SC$)
TEMP:
Data $100,$200,$300,$400,$500,$600,$700,$800,$900,$A00,$B00,$C00,$D00,$E00,$F00
Wait Vbl : View
For LOP=0 To TEMP2-1
Y=Sin(ANGLE#)*15+16
E=Instr(SCRL$,Chr$(Peek(TEMP+LOP)))
Screen Copy 6,X(E),Y(E),X(E)+35,Y(E)+25 To 0,350,Y
For LOP1=1 To 36 Step SP
If Mouse Key=1 Then QUIT
Screen Swap
Wait Vbl
Screen Copy Physic(0),0,0,400,100 To Logic(0),-SP,0
Next LOP1
ANGLE#=ANGLE#+Pi#/10
If ANGLE#>=PI*2 Then ANGLE=0
Next LOP
Loop
End Proc
'
Procedure QUIT
While Screen<>-1
Screen Screen
Fade 5 : Wait 75
Screen Close Screen
Wend
For A=0 To 3
Rainbow Del A : Wait 10
Next A
For A=63 To 0 Step -1
Volume A : Wait 2
Next A
Music Off
End
End Proc
'
Procedure INITVU
For I=2 To 4
Set Rainbow I-1,0,256,"","",""
'
B=15
For L=0 To 16*15 Step 16
If I=2 Then MBOW[L,B,I-1,256,0,0]
If I=3 Then MBOW[L,B,I-1,0,0,16]
If I=4 Then MBOW[L,B,I-1,0,0,1]
Dec B
Next L
'
Next I
Rainbow 1,0,50,16
Rainbow 2,0,70,16
Rainbow 3,0,90,16
End Proc
'
Procedure MBOW[L,X,N,R,G,B]
L1=L+7
For I=X To 0 Step -2
Rain(N,L1)=I*R+I*G+I*B
Dec L1
Next I
L1=L+8
For I=X To 0 Step -2
Rain(N,L1)=I*R+I*G+I*B
Inc L1
Next I
End Proc