BBS: Inland Empire Archive Date: 03-03-93 (20:11) Number: 252 From: CHRIS TRACY Refer#: NONE To: ALL Recvd: NO Subj: SCROLL.BAS v2.0 2/3 Conf: (2) Quik_Bas
'>>> Start of page 2. ' ' This source code is released into the public domain. You can use it in ' any of your programs for free, I don't care... ' LOCATE , , 0 ' Turn the cursor OFF! GOSUB Update: ' This updates the+_ ' list... DO WHILE LEN(I$) = 0: I$ = INKEY$: WEND ' Wait for a key SELECT CASE I$ ' What was it? CASE CHR$(0) + "G" ' Must be HOME ... ElementToStart% = 0 ' Reset starting Num = 0 ' points and+_ ' update GOSUB Update: ' the scroll CASE CHR$(0) + "O" ' Or maybe END ... ElementToStart% = Elements% - (Brw% - UpR%) ' set the+_ ' start Num = Elements% ' point to+_ ' the GOSUB Update: ' last ones &+_ ' update CASE CHR$(0) + "Q" ' PGDN ... ElementToStart% = ElementToStart% + (Brw% - UpR%) IF ElementToStart% + (Brw% - UpR%) > Elements% THEN Num = Elements% - (Brw% - UpR%) ElementToStart% = Elements% - (Brw% - UpR%) END IF GOSUB Update: IF ElementToStart% <> 0 THEN Num = Num + (Brw% - UpR%) END IF CASE CHR$(0) + "I" ' PGUP ... ElementToStart% = ElementToStart% - (Brw% - UpR%) IF ElementToStart% < 0 THEN Num = 0 ElementToStart% = 0 END IF GOSUB Update: IF ElementToStart% <> 0 THEN Num = Num - (Brw% - UpR%) END IF CASE CHR$(0) + "P" ' Down arrow key ElementToStart% = ElementToStart% + 1 IF ElementToStart% + (Brw% - UpR%) > Elements% THEN ElementToStart% = ElementToStart% - 1 GOTO Repeat: END IF GOSUB Update: Num = Num + 1 CASE CHR$(0) + "H" ' Up arrow key ElementToStart% = ElementToStart% - 1 IF ElementToStart% < 0 THEN ElementToStart% = ElementToStart% + 1 GOTO Repeat: END IF GOSUB Update: Num = Num - 1 CASE EndCode$ ' The ender key! GOTO Ender: END SELECT Repeat: I$ = "" ' This resets I$, which is what the WHILE..WEND_ ' uses. LOOP GOTO Ender: ' Something else must've happened... Update: ' ' Here comes the fun part ' FOR Show = 0 TO Brw% - UpR% LOCATE UpR% + Show, LfC% ' Get in the right place. COLOR Fore%, Back% ' Make sure we have the right_ ' color Prine$ = MID$(Arry$(ElementToStart% + Show), 1, Rgc% -_ LfC%) ' The above is simply used so I wouldn't have as much ' code ' later on. j% = INSTR(Prine$, "&&") ' Are there any color codes? IF j% THEN DO WHILE j% ColorChangeFore = VAL(MID$(Prine$, j% +_ 2, 2)) ' Gets the foreground color ColorChangeBack = VAL(MID$(Prine$, j% +_ 4, 2)) ' Gets the background color COLOR ColorChangeFore, ColorChangeBack ' Change to that color Prine$ = MID$(Prine$, j% + 6) ' Take out that color code. j% = INSTR(Prine$, "&&") ' Any more color codes? IF j% THEN PRINT MID$(Prine$, 1, j% - 1); ' If so, then just print up to ' the next code. '>>> Continued on page 3. --- T.A.G. 2.6d Standard * Origin: DangerBase ][ Programming Staff 412-438-4101 (1:2615/4@FIDONET.ORG)
Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET