SCROLLit Advanced ScrollBack Buffer Version 1.8 Copyright 1992-93 All Rights Reserved By Bromfield Software Products P.O. Box 70081 Ottawa, Ontario K2P 2M3 Canada Compuserve 71054,3051 _______ ____|__ | (TM) --| | |------------------- | ____|__ | Association of | | |_| Shareware |__| o | Professionals -----| | |--------------------- |___|___| MEMBER License SCROLLit is NOT free software, but is being distributed as "shareware". Non-registered users of this software are granted a limited license to use this program for a trial period of thirty days for the purpose of determining if SCROLLit is suitable for their needs. At the end of this trial period, you should either register your copy or discontinue using SCROLLit. Whether or not you register SCROLLit, we encourage you to share the unregistered version of the program with your friends and colleagues and to upload it to any BBS's you use. Please be sure to keep all the files together; a complete list of files appears in README.DOC. Introduction - What is SCROLLit? SCROLLit is a memory resident (TSR) program that captures, in full color, the lines of text that scroll off the top of the video screen and stores them in an XMS, EMS or conventional memory 'scrollback' buffer of a size specified by the user. A fast compression technique is used to store more than twice the number of lines in the available buffer space. SCROLLit can then be activated or 'popped up' over any non- graphical program by pressing the scroll lock key. Once activated, SCROLLit will let you scroll back through this saved information, line by line or page by page. SCROLLit has a fast search capability as well as a block-write feature that allows you to mark a block of lines for writing to a disk file or sending to your printer. 1 Capturing Lines Once resident, SCROLLit monitors video activity to capture text lines that are scrolled off the top of the screen. You may wish to look back through the output of the DIR command in DOS, or review the progress of a Bulletin Board (BBS) session while using your communications software, for example. A program can scroll the screen in three ways: DOS (interrupt 21h) function calls, BIOS (interrupt 10h) function calls, and direct writing to video memory. SCROLLit is able to capture both DOS and BIOS scrolling, but not the scrolling performed by direct screen writing. Fortunately, many programs that use direct screen writing can be configured to use BIOS function calls. Appendix 1 describes how to reconfigure two popular communications programs (Qmodem and Telix) to use BIOS scrolling, rather than direct screen writing. Some programs clear the screen rather than scrolling old output off the top of the screen. Monitoring DOS and BIOS scrolling would not capture this output because no scrolling is involved. To get around this problem, SCROLLit monitors BIOS 'clear-screen' requests. When a clear-screen request has been made, SCROLLit copies the entire screen to the scrollback buffer before the BIOS clears the screen. As a result, you will find that SCROLLit captures more output than most other scrollback buffer utilities. Disable Screen Capture Temporarily SCROLLit's capturing of screen scrolling and clear-screens can be temporarily disabled by typing: SCROLLit /- Screen capturing can later be re-enabled with the /+ command line switch. It may be useful to disable screen capturing before executing a program that generates a lot of scrolling or clear- screens, but that you do not wish captured in your scrollback buffer. WordPerfect is a good example of this. In WordPerfect, as you page through your document, SCROLLit would normally capture each page into the scrollback buffer, potentially taking up a lot of buffer space. You may find it convenient to execute WordPerfect using a simple batch file as follows: CD\WP51 CLS SCROLLIT /- WP51 SCROLLIT /+ SCROLLit can still be popped up when capturing is disabled, so that you can still scroll back through lines that were captured before screen capture was disabled. 2 Compressing the scrollback buffer Each line that SCROLLit saves contains 80 characters and 80 color attributes, requiring a total of 160 bytes storage. A full 25 line screen requires 4000 bytes of storage space. There is usually a lot of blank space on a screen, however, and the color attributes are often unchanged for an entire line of text and sometimes the whole screen. SCROLLit uses a very fast run-length- encoded compression algorithm to shrink the amount of space required to save a line of text and is typically able to compress the scrollback buffer by 60 to 70%, meaning that more than twice the number of lines of can be saved in the available buffer space. The extent to which SCROLLit has been able to compress the scrollback buffer is displayed when the help key (F1) is pressed. ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸ For example: ³ Number of lines saved: 2046 ³ ³ Average bytes per line: 43 ³ ³ Percent compression: 73% ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ; There is some overhead in setting up the buffer, which means that SCROLLit will obtain better compression with a larger buffer size. Installing and Unloading SCROLLit SCROLLit is a memory resident (TSR) program that is installed in memory by typing SCROLLit followed by the desired scrollback buffer size in kilobytes. The buffer size must be at least 20k. For example, to install SCROLLit with a 100k scrollback buffer, type: SCROLLit 100 You may wish to store this command in your autoexec.bat file to ensure that SCROLLit is loaded whenever you turn on your computer. You will need to prefix the command with the name of the directory where SCROLLit is stored, or store SCROLLit in a directory that you have set in your path command. SCROLLit can be unloaded from memory with the /U command line option, provided that other TSR's have not been loaded after it: SCROLLit /U Installing and unloading of SCROLLit is this simple. There are other command line options that will be discussed throughout this document. A complete list of command line options is provided in Appendix 3, and can be displayed by typing: SCROLLit /? 3 Memory Usage The SCROLLit program itself takes up about 9k of conventional memory, while the scrollback buffer may be stored in XMS, EMS or conventional memory. SCROLLit will store the scrollback buffer in XMS memory if there is enough XMS memory available to store a buffer of the size you request. If adequate XMS memory is not available, SCROLLit will store the buffer in EMS memory. If adequate EMS memory is not available, then conventional memory will be used. If there is not enough memory of any type available, SCROLLit will produce a summary of the available memory on your computer, so that you can determine what size of buffer will fit. The amount of available memory refers to the memory available for use by SCROLLit and is typically less than the total memory in your computer because other programs may already have reserved some of this memory for their own use. SCROLLit will automatically store the scrollback buffer in XMS memory if enough is available. Under some circumstances, you may wish to keep this XMS memory available for another application. The /E command line option tells SCROLLit to store the buffer in EMS memory, even if enough XMS memory is available. Similarly, the /C command line option tells SCROLLit to store the buffer in conventional memory even if adequate XMS or EMS memory exists. For example, to install SCROLLit with a 160k buffer in EMS memory, type: SCROLLit 160 /E In addition to XMS, EMS and conventional memory, there are two other types of memory that may be available on your computer: upper memory and raw extended memory. Upper memory refers to the memory between the top of conventional memory (the first 640k) and 1024k. The SCROLLit program (and buffer) can be stored in this type of memory rather than in conventional memory by using the 'loadhigh' capability of your memory manager, for example the LOADHIGH command in DOS Version 5 or the LOADHI program in Quarterdeck's QEMM. Storing your TSR programs in upper memory leaves more of your valuable conventional memory available for your other programs. Refer to your DOS 5 or memory manager documentation for instructions on how to load TSR's into upper memory. Raw extended memory refers to memory above the 1024k limit on your computer that has not yet been converted into usable XMS or EMS memory by your memory manager. If SCROLLit detects that you don't have XMS or EMS installed, but you do have raw extended memory available, the program will advise you to install the necessary software drivers to convert this memory into a more usable form. For example, this memory can be converted into XMS memory by adding DEVICE=HIMEM.SYS to your config.sys file. 4 Activating SCROLLit SCROLLit can be activated ('popped up') over any text-based (i.e. non graphical) application by pressing the Scroll Lock key (the SCROLLit 'hotkey'). If you press the Scroll Lock key while in graphics mode, SCROLLit will beep your speaker to remind you that it cannot be activated while you are in graphics mode. There are some circumstances where SCROLLit will decide that it is not appropriate to popup over a text-based application and will beep instead. (Technically, SCROLLit will not interrupt a DOS function call, and will wait a second or so for DOS to become available. Other TSR's are not necessarily so careful, and may interrupt DOS. SCROLLit will therefore not popup if this type of TSR has already interrupted DOS or if the foreground program keeps DOS busy for an extended period of time.) Once SCROLLit is installed, use the key combination Alt-Scroll Lock (press the Alt key and the Scroll Lock key at the same time) in order to turn your Scroll Lock light on and off. If you are using an unregistered copy of SCROLLit, a shareware screen may appear when you press the hotkey to remind you to please register your copy of SCROLLit. This screen does not appear on registered copies of the program. Please refer to the section 'How to Register SCROLLit' for more details on how to remove this shareware screen. ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ SCROLLit Version 1.8 ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸ ³ ³ ³ SCROLLit is Shareware. Please try it for 30 days to determine ³ ³ if it meets your needs. If you continue to use the program ³ ³ beyond the trial period, you are required to pay the registration ³ ³ fee. For more information, type SCROLLit /R at the DOS prompt. ³ ³ ³ ³ The registration fee is $20 CDN for Canadian residents, or ³ ³ $17 US for U.S. and overseas addresses. ³ ³ ³ ³ Remit to: Bromfield Software Products Association of ³ ³ P.O. Box 70081 Shareware ³ ³ Ottawa, Ontario K2P 2M3 Professionals ³ ³ CANADA MEMBER ³ ³ ³ ³ Registration removes this screen. Press F5 to continue. ³ ³ ³ ÔÍÍÍÍÍÍÍÍÍ Copyright 1992-93 Bromfield Software Products ÍÍÍÍÍÍÍÍÍÍ; Once you have activated SCROLLit, you can exit by pressing the escape (Esc) key or pressing the Scroll Lock key a second time. The hotkey can be changed with the /H command line switch as explained in the section 'Customizing SCROLLit - Changing the Hotkey'. 5 Using SCROLLit - Scrolling the scrollback buffer Once you have activated SCROLLit, you can scroll back through the buffer using the standard screen scrolling commands:  and  to scroll line by line, Page Up and Page Down to scroll page by page, and the Home and End keys to go to the beginning or end of the scrollback buffer. The bottom line on your screen, the status line, will indicate your current position within the buffer. 'Line 48 of 2106' means that the top line on the screen is the 48th line in a buffer holding a total of 2106 lines of text. The Ctrl-Home key combination can be pressed to return to the same position in the scrollback buffer you were in when you last exited SCROLLit. It is possible that this line has since scrolled off the top of the buffer, in which case, SCROLLit will beep and place you at the top (Line 1) of the buffer. Using SCROLLit - Searching the scrollback buffer There are three commands for searching through the scrollback buffer for a target string. Press the letter B to search Backward through the buffer from your current location. Press the letter F for a Forward search from your current location. Press the letter A to search Again for the next occurrence of the same target string. SCROLLit performs a fast, case-insensitive search for the target string that you provide. When SCROLLit finds an occurrence of the target, the screen will be repositioned to that location in the scrollback buffer and the target string will be highlighted by reverse video to show you where it was found. If the target is not found, SCROLLit will beep the speaker and give you a warning message on the status line. 6 Using SCROLLit - Block-writing to file or printer Block-writing refers to the ability to mark a block of lines in the buffer and then write this block to a specified disk file or to your printer. Press the letter W to invoke block-Writing. There are three steps to writing a block of lines: mark the beginning of the block, mark the end of the block, and then specify the disk filename or printer for output. If you are part way through these steps, you can back up by pressing the escape (Esc) key. Use the cursor keys to move to the location of the first line in the block that you wish to mark. The row is highlighted by reverse video and is marked as the beginning of your block by pressing the enter key. Then the cursor keys are again used, this time to chose the end of the block, again marked by pressing the enter key. Once you have pressed the enter key a second time, the block of lines will be marked and highlighted in reverse video. After marking the block of lines, SCROLLit will prompt you for the disk filename where these lines should be saved. The default filename is SCROLL.IT in the current directory, but can easily be changed. If a file with that name already exists, SCROLLit will ask you if you wish to overwrite this file or append this block of lines to the end of the file. To send the block of lines to your printer type PRN rather than a filename. (Type LPT2 to send to LPT2.) 7 Using SCROLLit - the Help screen The help screen, brought up by pressing the F1 key, summarizes the commands discussed in the last two pages. In addition to the command summary reproduced below, the Help screen includes a summary of the size of the buffer and the degree of compression as discussed in the section 'Compressing the scrollback buffer'. ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸ ³   Scroll up/down 1 line ³ ³ PgUp PgDn Scroll up/down 1 page ³ ³ Home End Go to beginning/end of buffer ³ ³ F Search forward for text ³ ³ B Search backward for text ³ ³ A Search again, same text ³ ³ W Write block of text ³ ³ to file or printer ³ ³ Ctrl-Home Return to last position ³ ³ Esc Exit SCROLLit ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ; ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸ ³ Number of lines saved: 2046 ³ ³ Average bytes per line: 43 ³ ³ Percent compression: 73% ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ; How to register SCROLLit The registration fee for SCROLLit is $17 U.S. or $20 CDN for Canadian residents. The ORDERFRM.DOC file can be printed on your printer as a convenient form to use for registration. When you register SCROLLit, you will be mailed a registration key that is derived from the spelling of your name. Your name is specified with the /N command line option and the eight character registration key is specified with the /K command line option. Installing SCROLLit with a 100k scrollback buffer would look like: SCROLLit 100 /N=John_P._Doe /K=12345abc Note that underscores are used instead of spaces when specifying your name and that both the name and the key can be specified in either upper or lower case. SCROLLit will check to see if the registration key is valid and correctly matches the specified name. If specified correctly, SCROLLit will no longer bring up the shareware screen when activated. Typically, you will be installing SCROLLit in your autoexec.bat file, which should be edited to include the /N and /K command line options as illustrated above. This registration key is for your personal use only. Please do not reveal it to others. 8 Customizing SCROLLit - Changing the Color Settings By default, SCROLLit uses a color scheme of blue and white against a cyan background. While this combination looks fine on a color monitor, some users of LCD notebooks report that these color attributes lack definition when translated into the shades of grey that these machines use to represent different colors. SCROLLit has two command line switches that allow the user to override the defaults and specify the color attributes used in color video mode 3 and in monochrome video mode 7. /AC=a1,a2,a3,a4 Attributes used in color video mode 3. /AM=a1,a2,a3,a4 Attributes used in mono video mode 7. Default Values ================ Color Mono a1 = Border color 30 70 a2 = Normal Text 31 70 a3 = Highlighted Text 3F 70 a4 = Text being edited 0F 0F Color attributes are specified as two digit hexadecimal numbers. The first digit specifies the background color and the second digit specifies the foreground color. First Digit (Background) Second Digit (Foreground) 0 -- Black 0 -- Black 1 -- Blue 1 -- Blue 2 -- Green 2 -- Green 3 -- Cyan 3 -- Cyan 4 -- Red 4 -- Red 5 -- Magenta 5 -- Magenta 6 -- Brown 6 -- Brown 7 -- Grey 7 -- White 8 -- Grey 9 -- Intense Blue A -- Intense Green B -- Intense Cyan C -- Intense Red D -- Intense Magenta E -- Intense Yellow F -- Intense White These commands can be used to set the color attributes during installation or after SCROLLit has already been installed. For example, to install SCROLLit with a 100k buffer and customized color attributes for use during color mode 3, type: SCROLLit 100 /AC=20,27,2F,07 9 Customizing SCROLLit - Changing the Hotkey By default, SCROLLit uses the Scroll Lock key as the hotkey, but this can be changed with the /H=skk command line parameter, where s is a single digit hexadecimal SHIFT code and kk is a two digit hexadecimal KEY code (see below). For example, to install SCROLLit with a 100k buffer and "Alt-Space" as the hotkey type: SCROLLit 100 /h=839 Single Digit SHIFT code ----------------------------------------------------------- Alt * * * * * * * * Ctrl * * * * * * * * Left Shift * * * * * * * * Right Shift * * * * * * * * ----------------------------------------------------------- SHIFT code: 0 1 2 3 4 5 6 7 8 9 A B C D E F Two Digit KEY Code --------------------------------------------------------------- Hex | Hex | Hex Key Code | Key Code | Key Code =============================================================== Esc 01 | A 1E | F1 3B !1 02 | S 1F | F2 3C @2 03 | D 20 | F3 3D #3 04 | F 21 | F4 3E $4 05 | G 22 | F5 3F %5 06 | H 23 | F6 40 ^6 07 | J 24 | F7 41 &7 08 | K 25 | F8 42 *8 09 | L 26 | F9 43 (9 0A | :; 27 | F10 44 )0 0B | "' 28 | NumLock 45 _- 0C | ~` 29 | ScrollLock 46 += 0D | Left Shift 2A | 7 Home 47 Backspace 0E | |\ 2B | 8 UpArrow 48 Tab 0F | Z 2C | 9 PgUp 49 Q 10 | X 2D | - (grey) 4A W 11 | C 2E | 4 Left Arrow 4B E 12 | V 2F | 5 (keypad) 4C R 13 | B 30 | 6 Right Arrow 4D T 14 | N 31 | + (grey) 4E Y 15 | M 32 | 1 End 4F U 16 | <, 33 | 2 Down Arrow 50 I 17 | >. 34 | 3 PgDn 51 O 18 | ?/ 35 | 0 Ins 52 P 19 | Right Shift 36 | . Del 53 {[ 1A | PrtSc * 37 | F11 57 }] 1B | Alt 38 | F12 58 Enter 1C | Spacebar 39 | Ctrl 1D | Caps Lock 3A | 10 Appendix 1 - SCROLLit and Communications Software SCROLLit can be used to scrollback through your communications session provided you configure your communications software to use BIOS screen scrolling rather than direct screen writing. Qmodem scrolls the screen using direct screen writing by default, but allows BIOS scrolling by setting the 'Jump scroll' option. Press Alt-N / Video / Toggles / Jump scroll. Telix also scrolls the screen uses direct screen writing by default, but will use the BIOS for all video activity (both scrolling and writing characters to the screen) when the BIOS option is set. Press Alt-O / Screen / ScreenWrite / Bios. The Status line should not be configured for the top of the screen. It can be set to the bottom of the screen or disabled by pressing Alt-O / Terminal / D-Status Line / None or Bottom. Procomm Plus uses BIOS scrolling with no option for direct screen writing. No reconfiguring is required. The shareware Procomm Version 2.4.3 also uses BIOS scrolling. There is an option for direct screen writing, but it does not effect scrolling (only writing characters to the screen). No reconfiguring is required for SCROLLit to capture scrolled output from either Procomm or Procomm Plus. SCROLLit has a wider range of features than the scrollback buffers built into these communications packages (i.e. full color, string search, block-writing, compression). Furthermore, when you use SCROLLit, your entire session is saved until it scrolls off the top of the buffer, while the lines stored in built-in scrollback buffers are lost when you exit the program. You can use an external scrollback program such as SCROLLit just as you can use external protocol drivers to augment the capabilities of your communications software. Special Note for Compuserve Users Compuserve sessions can be set for line-oriented mode, where old output scrolls off the top of the screen, or for page-oriented mode, where Compuserve sends a page of information, and after your response, clears the page before transmitting the next page. In page-oriented mode, the screen is never scrolled, so SCROLLit intercepts the 'clear-screen' requests in order to capture your past output. SCROLLit will capture your Compuserve session whether you have set a line-oriented or a page-oriented terminal type. You can change from one mode to another by typing SET TERMINAL. 11 Appendix 2 - Using SCROLLit with Desqview SCROLLit is Desqview aware and can be successfully loaded within a Desqview window. SCROLLit will detect that it is operating in a Desqview window and will capture scrolled lines from the Desqview video buffer rather than the hardware video buffer. SCROLLit must be installed within a Desqview window in order to capture scrolling within Desqview. You may want to install SCROLLit and the DVANSI driver in your DOS window, for example. The easiest way to do this is by setting up a small batch file with the following two lines: DVANSI SCROLLit 100 If you called this file, say, mydos.bat, then you would specify mydos in the program field in CP (Change a Program). Then whenever you opened this particular window, Desqview would execute this batch file, loading both your ansi driver and SCROLLit. Normally, SCROLLit would only allow one copy of itself in memory at one time (attempting to load a second copy yields an 'Already installed' message). The one exception to this rule is Desqview, where it is possible to have one copy of SCROLLit in each Desqview window. (Trying to load two copies in one window will, of course, produce the 'Already installed' message.) Desqview Optimization SCROLLit gives up it's time slice during idle periods in order to optimize the performance of other Desqview windows. By default, SCROLLit hooks the timer interrupt in order to provide a timeout feature and to allow the program to popup in a wide variety of situations. Most TSR's hook the timer in this way. However, upon detecting the timer hook, Desqview will wait one extra timer tick before giving up the time slice to ensure that the timer itself is serviced. As a result, any program or TSR that hooks the timer interrupt (either hardware interrupt 08h or software interrupt 1Ch) will reduce the performance of your other Desqview windows. To fully optimize Desqview performance, SCROLLit should by installed with the /NT (for NoTimer) command line switch which allows installation without the timer hook (the BIOS keyboard interrupt is hooked instead). For example, to install SCROLLit with a 100k buffer and no timer hook, type: SCROLLIT 100 /NT Without a timer hook, there will be some situations where SCROLLit will not be able to popup. Users will have to experiment with this option to determine if this is inconvenient. 12 Appendix 3 - SCROLLit Command Line Options nnn Scrollback buffer size in kilobytes. Must be at least 20k. /E Use EMS memory for scrollback buffer storage, even if XMS is available. /C Use conventional memory for scrollback buffer storage, even if XMS or EMS is available. /N= Specify your name as given for registration. Use underscores instead of spaces as in John_P._Doe. Case insensitive. /K= Specify the eight character registration key that is sent upon registration. Case insensitive. /H= Select alternate hotkey. /AC= Select color attributes for color video mode 3. /AM= Select color attributes for mono video mode 7. /NT Install SCROLLit without hooking the timer (for Desqview users). /- Temporarily disable screen capture. /+ Re-enable screen capture. /R Information on how to register. /? Display command line summary. /U Attempt to unload SCROLLit from memory. Will not unload if other TSR's were loaded after SCROLLit. 13 Technical Support If you have questions, problems, or ideas for new features, please contact Bromfield Software Products by postal mail to our Ottawa address or via Compuserve electronic mail to User ID 71054,3051. Acknowledgements SCROLLit was originally created to provide a scrollback capability for a number of different software products developed by Bromfield Software Products. With the shareware release we have received useful feedback from SCROLLit users throughout Canada, the United States, and around the world. We wish to thank all users who have sent us reports of possible bugs and provided ideas for useful new features. Special thanks to those SCROLLit users that have taken the time to help with beta testing of new versions: Phil Webb, Jim McKeown, Laurent Dube, Karl Schopmeyer, George Havach, Christian Burger, Gary MacDonald, Prof. Timo Salmi (of the University of Vaasa, Finland), Bruce Judd, Bruce Francis, Tony Gozdz, Robert Newton and Michael Broomfield. We would also like to thank all those who have supported the shareware concept by registering their copy of SCROLLit. Disclaimer Use of this program acknowledges this disclaimer of warranty: "This program is supplied as is. Bromfield Software Products disclaims all warranties, express or implied, including, without limitation, the warranties of merchantability and of fitness of this program for any purpose. Bromfield Software Products assumes no liability for damages direct or consequential, which may result from the use of this program." Trademarks All trademarks and copyrights belong to their respective holders. Ombudsman This program is produced by a member of the Association of Shareware Professionals (ASP). ASP wants to make sure that the shareware principle works for you. If you are unable to resolve a shareware-related problem with an ASP member by contacting the member directly, ASP may be able to help. The ASP Ombudsman can help you resolve a dispute or problem with an ASP member, but does not provide technical support for members' products. Please write to the ASP Ombudsman at 545 Grover Road, Muskegon, MI USA 49442-9427, FAX 616-788-2765 or send a CompuServe message via CompuServe Mail to ASP Ombudsman, 70007,3536. 14