home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / sourcecode / procedures / scroller1-3.amos / scroller1-3.amosSourceCode
AMOS Source Code  |  1993-03-07  |  3KB  |  77 lines

  1. ' SCROLLER DEMO  
  2. ' This is a scroller that uses Amiga fonts. Fonts sizes greater than ~28 
  3. ' will flicker.  Warning: This prog closes the Workbench so you will have
  4. ' boot out of it.  
  5. ' Here are limits on the font size. (Written on a A1000 with 3 megs) 
  6. '          Colours  Font size
  7. '  Hires.     4        17    
  8. '             2        24  
  9. '  Lowres    32        15  
  10. '            16        20
  11. '             8        24
  12. '             4        28  
  13. '             2        36  
  14. ' Robert Farnsworth
  15. ' 1 Vidovic Ave, Mildura, 3500 
  16. ' December 1990. 
  17. ' THIS IS A MUST FOR SMOOTH SCROLLING
  18. Close Workbench 
  19. TXT$="This is a Scroller routine that uses the standard AMIGA fonts.  It works in HIRES or LOWRES, and has selectable scroll speed.  R. G. Farnsworth, December 1990."
  20. ' Make the screen about 100 pixels wider than SCRWIDTH (the viewable screen).
  21. ' More if some characters are really wide - like "W" and "M".
  22. SCRWIDTH=320
  23. Screen Open 0,SCRWIDTH+150,256,16,Lowres
  24. Screen Display 0,128,42,SCRWIDTH,
  25. Flash Off : Curs Off 
  26. Get Fonts 
  27. LF=1
  28. While Font$(LF)<>"" : Inc LF : Wend 
  29. Print "          AMIGA-FONTS SCROLLER"
  30. Print 
  31. Print "        (Press Spacebar to pause)"
  32. For F=1 To LF-1
  33.    SP=Rnd(9)+1
  34.    Locate 0,7 : Cline : Print "Font:";F;"  Speed:";SP
  35.    Print At(0,10);Font$(F)
  36.    SCRL[TXT$,F,SP,SCRWIDTH]
  37. Next 
  38. End 
  39. Procedure SCRL[T$,FONT,SPEED,SWIDTH]
  40.    ' This is a scroller routine that uses Amiga fonts, any size,
  41.    ' proportional and non proportional.  It will work with both 
  42.    ' Hires and Lowres screens.  Scrolling is very smooth for fonts
  43.    ' sizes upto about 36, depending on the resolution used and the
  44.    ' number of bitplanes used.  The Workbench MUST be closed if you want
  45.    ' smooth scrolling (also eliminate any background tasks, such as POPCLI).
  46.    '       T$ -  The text string to be scrolled.
  47.    '     FONT -  The number of the font to be used. 
  48.    '   SWIDTH -  The viewable width of the screen, usually 320 or 640.
  49.    '             (The screen must be approx 100 pixels wider than SWIDTH.)
  50.    '    SPEED -  The scrolling speed - 1 is slow, 3 about right, 8 is fast. 
  51.    SPEED=Max(1,SPEED) : FONT=Max(1,FONT)
  52.    Set Font FONT
  53.    FONTHEIGHT=Val(Mid$(Font$(FONT),30,3))
  54.    Def Scroll 1,1,Screen Height-FONTHEIGHT To Screen Width,Screen Height,-SPEED,0
  55.    F=(SWIDTH/(Text Length(" ")))+3
  56.    T$=T$+String$(" ",F)
  57.    BL=Screen Height-(FONTHEIGHT-Text Base)
  58.    P=0 : I=1
  59.    Repeat 
  60.       If P<0
  61.          Text SWIDTH+P,BL,Mid$(T$,I,1)+" "
  62.          P=P+Text Length(Mid$(T$,I,1))
  63.          Inc I
  64.       End If 
  65.       L=Text Length(Mid$(T$,I,1))
  66.       Text SWIDTH+P,BL,Mid$(T$,I,1)+" "
  67.       C=0
  68.       Repeat 
  69.          Scroll 1
  70.          C=C+SPEED
  71.          Wait Vbl 
  72.       Until C=>L
  73.       P=P-C+L
  74.       Inc I
  75.       While Key State(64) : Wend 
  76.    Until I>Len(T$)
  77. End Proc