RANDOMIZE Timer() DOT 0,0 GET IMAGE 4,0,0,1,1 INPUT "<ENTER THE AMOUNT OF LINES OR PRESS ENTER FOR DEFAULT(60)>",lines SYNC ON : SYNC RATE 0 IF lines=0 THEN lines=60 DIM LineData$(lines) DIM SliderPos(5) FOR X=1 TO lines GenString(rnd(100),X) NEXT X REM Find the longest line length=0 FOR X=1 TO lines IF Text Width(LineData$(X))>length length=Text Width(LineData$(X)) ENDIF NEXT X Create Bitmap 1,length+100,(Text Height("|")*lines)+100 FOR I=0 TO lines-1 ` Text 0,I*Text Height("|"),str$(i) Text 0,I*Text Height("|"),LineData$(I+1) ` PRINT LINEDATA$(i) NEXT I GET IMAGE 1,0,0,length+100,(Text Height("|")*lines)+100 Set Current Bitmap 0 XBottom#=length+100 SliderX#=630/XBottom# If SliderX#>1 then SliderX#=1 YBottom#=(Text Height("|")*lines)+100 SliderY#=470/YBottom# IF SliderY#>1 then SliderY#=1 IF SliderX#<>1 BOX 0,470,(SliderX#)*630,479 GET IMAGE 2,0,470,(SliderX#)*630,479 ENDIF IF SliderY#<>1 BOX 630,0,639,(SliderY#)*470 GET IMAGE 3,630,0,639,(SliderY#)*470 ENDIF cls DO PASTE IMAGE 1,(0-SLIDERXPOS*(1/SLIDERX#)),(0-SLIDERYPOS*(1/SLIDERY#)) Sprite 2,SLIDERXPOS,470,2 SPRITE 3,630,SLIDERYPOS,3 SPRITE 4,MouseX(),MouseY(),4 IF MouseClick()=1 IF flag=0 SliderSelect=Sprite Collision(4,0) INITPOS=SliderPos(SliderSelect) locx1=MouseX() locy1=MouseY() flag=1 ELSE IF SliderSelect=3 SLIDERYPOS=INITPOS+MouseY()-locY1 IF sliderYpos<0 then sliderYpos=0 IF SliderYpos>(470-(SliderY#*470)) then SliderYpos=(470-(SliderY#*470)) ENDIF IF SliderSelect=2 SLIDERXPOS=INITPOS+MouseX()-locx1 IF sliderxpos<0 then sliderXpos=0 IF SliderXpos>(630-(SliderX#*630)) THEN SliderXpos=(630-(SliderX#*630)) ENDIF ENDIF ENDIF IF MouseClick()=0 flag=0 SliderSelect=0 ENDIF SYNC CLS LOOP END FUNCTION GenString(length,location) string$="" FOR I=1 TO LENGTH letter=RND(25)+97 string$=string$+CHR$(letter) NEXT I LineData$(location)=string$ ENDFUNCTION