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