Created
March 30, 2024 20:39
-
-
Save fredrik-rambris/fc8b45868303ecad73de32fedaf8bddd to your computer and use it in GitHub Desktop.
AMOS Sine-scroller
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
' Sine-scroller by Fredrik Rambris | |
Dim _SINE(64) | |
_MAXLETTERS=20 | |
Dim _BOBCYCLE(_MAXLETTERS) | |
_SCROLLTEXT$="This is a sine wave scroller that is as fun to watch as hard to read. Greetings to everyone. " | |
CAPTURE_FONT | |
CALC_SINE | |
Screen Open 0,320+16,64,2,Lowres | |
Curs Off : Hide : Paper 0 : Cls 2 | |
Palette 0,$FFF,$8 | |
Screen Display 0,,,320,256 | |
Double Buffer | |
_LETTER_X=Screen Width-16 | |
_CURRENTLETTER=1 | |
_MAXBOB=0 | |
_CURRENTBOB=0 | |
PLACE_LETTER | |
Repeat | |
For _BOB=1 To _MAXBOB | |
Add _BOBCYCLE(_BOB),1,1 To 64 | |
Bob _BOB,X Bob(_BOB)-1,_SINE(_BOBCYCLE(_BOB)), | |
Next _BOB | |
If X Bob(_CURRENTBOB)<_LETTER_X-16 Then PLACE_LETTER | |
Wait Vbl | |
Until Inkey$<>"" or Mouse Key | |
End | |
Procedure PLACE_LETTER | |
Global _SINE(),_CURRENTLETTER,_MAXBOB,_CURRENTBOB,_SCROLLTEXT$ | |
Global _BOBCYCLE(),_MAXLETTERS,_LETTER_X | |
Add _CURRENTBOB,1,1 To _MAXLETTERS | |
If _MAXBOB<_MAXLETTERS Then Add _MAXBOB,1 | |
_BOBCYCLE(_CURRENTBOB)=1 | |
_YBOB=_SINE(_BOBCYCLE(_CURRENTBOB)) | |
_IMGNUM=Asc(Mid$(_SCROLLTEXT$,_CURRENTLETTER,1))-31 | |
Bob _CURRENTBOB,_LETTER_X,_YBOB,_IMGNUM | |
Add _CURRENTLETTER,1,0 To Len(_SCROLLTEXT$) | |
End Proc | |
Procedure CALC_SINE | |
Global _SINE() | |
Degree | |
For P=1 To 64 | |
DEG#=P*(360.0/64.0) | |
_SINE(P)=(Sin(DEG#)*16.0)+16 | |
Next P | |
End Proc | |
Procedure CAPTURE_FONT | |
Screen Open 2,320,8,2,Lowres | |
Screen Hide : Hide : Curs Off : Flash Off : Paper 0 : Cls 0 | |
Screen Open 3,320,16,2,Lowres | |
Screen Hide : Hide : Curs Off : Flash Off : Paper 0 : Cls 0 | |
For I=Asc(' ') To Asc('z') | |
Screen 2 | |
Text 0,6,Chr$(I) | |
Zoom 2,0,0,7,7 To 3,0,0,15,15 | |
Screen 3 | |
BN=I-Asc(' ')+1 | |
Get Bob 3,BN,0,0 To 15,15 | |
Next I | |
Screen Close 2 | |
Screen Close 3 | |
End Proc |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment