15.Nov. 1997 Documentation for ~~~~~~~~~~~~~~~~~ VIEWS V1.98 ~~~~~~~~~~~ This program is freeware. Copyright by Tobias Winkler. No restrictions for PRIVATE use. Contact me before COMMERCIAL use! I would like to hear, if you like this program, or have any comments or ideas about it. (You can reach me per EMail, or Fido-Netmail.) !! Attention: both of the following addresses will be valid until March '98 !! !! only. (At least I hope so, because I'm going to begin my studies in !! !! computer-science then. :-) !! !! But you can try to reach me at my backup-address: !! !! tobias_winkler@rocketmail.com !! My Fido-Net address is: Tobias Winkler@2:2411/901.38 (Bummi-Box,Frankfurt/Oder) By Internet-EMail I can be reached at this address: Tobias_Winkler@p38.f901.n2411.z2.sesom.de If you cannot reach me there, try my backup-address: tobias_winkler@rocketmail.com Or via snail mail: Tobias Winkler G.-Hauptmann-Str. 17 15234 Frankfurt (Oder) Germany (By the way, I know my English isn't that good. So don't blame me for it. Ok, I could use my native language, but wouldn't you agree that German is one of the worst languages ;-> (at least for computers...)?) _____________________________________________________________________________ What is ViewS? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ViewS is simply another fileviewer, aspecially made for textfiles. The most remarkable feature is the smooth-scrolling. This means, that the lines will not be scrolled line by line, but pixel by pixel. At least in my opinion, this is much better when reading texts, because tracing the current read line is easier (and so on; simply said: try it). Of course, it has all the typical features like linewrapping, searching (*), storing of position, mouse support, different textmodes, printing, line- selection, ... (*) By the way, the searching is extremely fast. It's *much* faster than most other programs. :-) (If you want don't want to miss features of ViewS, better read the HISTORY.TXT and/or the VIEWS.CFG, because I might have forgotten to mention something here, or was to lazy, or didn't wanted to repeat something already mentioned in the HISTORY.TXT, or a cute little worm- hole suddenly appeared in the VIEWS.DOC (worm-holes are so strange, they might even appear in such a virtual thing like a file...) and ate some of the features, or hmmmmmmmm I don't know.... ;-) _____________________________________________________________________________ Where to get the latest version? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I'll upload new versions of ViewS to the great Simtel-Archive. Look at ftp.simtel.net/pub/simtelnet/msdos/txtutl/ or a Simtel-mirror near you. The filename will always be VIEWSxxx.ZIP, where xxx is the version-number (e.g. VIEWS198.ZIP). If you don't have access to the Simtel-Archive, just contact me, and we'll see, how to manage it. (You can also visit the homepage of a friend, who has made a Beta-projects- page (the Beta doesn't mean beta-stage, but is the name of our local computer-club here in Frankfurt (Oder) ;-)). From time to time I'll send the newest unreleased beta-version of ViewS to him, and he'll hopefully place it on the Beta-projects page. Just point you browser to http://www.stud.uni-siegen.de../marcus.sackrow/ and look for the "Projects from other Beta-members" (or something like that). ) _____________________________________________________________________________ Requirements: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ An 386 or higher (no need to have it from Intel ;) with an VGA-compatible display-card, a keyboard (maybe ViewS will even work without...) and optionally a mouse. (I used a bit of 32Bit-code, to make the percent-calculation for very big files a bit easier for me. This is the only reason, why it won't run on a 80286. If you *really* want to get a 286-version, contact me, and I will see what I can make...) ViewS uses nothing of extended or expanded memory, but only conventional memory. So you can run it witout any memory-manager. _____________________________________________________________________________ Commandline of ViewS: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VIEWS [/|-] Filename is (of course) the name of the file which shall be viewed. There can be some additional options, which are defined by a leading "-" or "/". (The "|" means "or". "[]" means "optional".) Up to now allowed options are: ?|H : for a commandline-help W[+|-] : switches the linewrapping on (+) or off (-) (If no +|- is given, + is assumed.) Mt|f|r : sets the filemode to Text- (t), Filtered (f) or Raw-mode (r) (Textmode is the normal mode for textfiles with interpreting the CR,LF and Tab-codes. Filtered textmode is like the normal textmode, but all ASCII-codes below 32 (all "binary" codes) will be filtered out. In Rawmode all of these controlcodes are ignored, and displayed as raw, linear character-stream. (Useful for binary files.) This mode can be changed manually while viewing (see below). If this option isn't defined, the kind of the viewed file will be detected at startup. (Raw mode for binary files, while binary files are recognized by scanning the first 400 bytes of the file. If there are 5 or more bytes with a value of [0..7,11,14..25,27..31] among them, the file is taken as binary.) C : loads the char-conversion-table named (A char-conversion-table is used, when reading a text which is written on other systems than PC-DOS (like Winshit or Amiga) and which contains "special"-ASCII- characters like "”„™Žšá...".) (See config-file [ChrTab] / [DefChrTab]) A : loads the color-attribute-table named (A color-attribute-table is used to highlight certain text- passages like the *....* passages in Fido-messages. (See config-file [AttrTab] / [DefAttrTab]) CM : this forces ViewS to use the current textmode S[+|*] : write all selected lines into file at exit /S+ will append to , if it already exists, /S* will overwrite , if it already exists, else ViewS will ask you what to do, if it already exist _____________________________________________________________________________ Statusbar of ViewS: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ At the lower border of the screen the statusbar of ViewS is located. (Sorry, can't put it on the top of the screen, due to technical reasons.) It looks like this: ħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħħ ħLine: 1 - 24³T 1%³Col: 0şSpeed: 4ş Wrap şSelect 12 ùùùùùùħ (1) (2) (3)(4) (5) (6) (7) (8) (9) (1): Number of the first textline on the screen. (2): Number of the last textline on the screen. (3): Shows a red "T" for Text- and a red "R" for Raw-mode. (see commandline- options /MT | /MR (above) for further information) A red "F" means Filtered-text-mode (Key -) which filters out any character below ASCII 32, which are all control-characters. (4): This is the percent-value which shows where you are in the file. (5): The first shown column of the text. (6): This is the current set scrollspeed, which can range from 1/99 (slowest) to 1/2 and 1 to 16 (fastest). (The actual value is the number of lines (pixels, not textlines) which are scrolled in each frame. (Frame is the time, when the screen is re- freshed by the VGA-card, which is normally around 1/70 second.) (See below => key-commands / config-file) (7): If there is a "Wrap" shown, then line-wrapping is enabled. A "NoWrap" shows that it is disabled. (8): This counter shows the number of selected lines. (9): This is a simple speedbar, which shows your current "real" scrollspeed (and scrolldirection) with an equivalent number of arrows. (just4fun) The background-color of the status-bar can show a position-bar, which visual- lizes the current position in the file (and the "length" of the screen). _____________________________________________________________________________ Messages: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ViewS often reports it's state and events to the user via messages. For that purpose one or more textlines can appear below the statusbar. Normally these lines disappear after a certain time or if you press a key. The color of the message will flash to get your attention. You can recognize the message-type by it's color. A red message normally reports errors or problems. Blue messages are only for information, while a yellow colored text shows that some work (like sear- ching) is in progress. A fast flashing darkgreen colored text is used, when the user is asked for confirmation. Some events also produce some short beeps, for example if the user stopped a running progress, if something (like a search) was succesful or if some other things failed... (These sounds can be disabled via the config-file, or toggled by pressing -.) When the "normal" text-screen is disabled (you can't scroll, and so on), for example, when you are in a menu or the program is searching currently, the textscreen will darken a bit, to signal it's state. _____________________________________________________________________________ Usage: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can use mouse or keyboard to scroll through the file. At first the key commands: The most important key-combination ;-) Ctrl-Alt-Esc - This is the emergency exit. It should let you stop the program at any point, even if it hangs. ("Hangs" means only: ViewS hangs in a buggy routine of itself. If your system crashed, this key-combination is useless.) Cursor-Keys: Up/Down - Scroll up/down. Hold down the Shift-key to double the scroll-speed. (For default, the actual scroll-speed won't jump directly to the preset value, but the scrolling will accelerate up to the desired speed. If the key is released, the speed will slow down, until zero is reached. You can change this via the config-file as you want. See below => config-file) Ctrl-Up/Down - Usually: Scroll up/down without soft-scrolling. ("Usually" means, when [HardScroll] in the config- file is disabled. Else, -... will scroll soft, and Up/Down without scroll hard.) (See below => config-file [HardScroll]) Here you can hold down shift too, to speed up the scrolling. Left/Right - Move the screen left/right. (Changes the first shown column.) Ctrl-Left/-Right - Move the screen a half screen-width to the left/right. Ctrl-Home - Reset horizontal position to 0. PageUp/PageDown - Move the file around one page up/down. ("Around", because this works exactly at normal 25x80 textmode and when [PageAccel] (in config-file) remains at it's default value of 16. But in different textmodes (=> size of chars) or different [PageAccel]-values, it can scroll a bit less than a whole page/screen. The reason for it is the acceleration/slowdown at scrolling, which makes it hard to reach the wanted position exactly. ) Ctrl-PageUp/-PageDown - This moves up/down one page, but without accelera- ting/slowdown. The position will directly (and exactly) jump one page up/down. This is a much faster way for scrolling through the file. (See below => config-file [HardPage]) Home - Move to the begin of the file. ("Pos1" on german keyboards) End - Move to the end of the file. If you view a textfile (you are in Text-Mode; key -), ViewS will move immediately to the end of the file, and begins counting lines. The line- counting is very fast, so you will only notice it when viewing VERY large textfiles (above 4MB). (At my system (K6-200, around 9,7MB/S raw-harddisk- transferspeed) it needs 1 second for a 5MB-textfile.) But that's no problem, because the line-counting works completely in background, so that you can still move, search or exit during the process. ViewS will remember linenumber at certain file- positions so that the delay of the count will only happen the first time. Tab/Shift-Tab - Moves the file 1 byte left/right. (This could be useful for binary files, or such...) Ctrl- || / || - Moves the file 16 bytes left/right. Plus/Minus - This raises/lowers the scrollspeed. It can range from 16 (fastest) down to 1. Before scrollspeed 1 comes scrollspeed 1/2 down to 1/99 (slowest). 1..0 - This sets the scrollspeed directly from 1 to 10. Ctrl-1..0 - This set scrollspeed from 1/2 to 1/20. R - If you press this key, Reader's mode will be activated/deactivated. Reader's mode means, that Autostop (see below => Alt-A) is disabled, the speed is set to a predefined value (default: 1/25 (can be changed in config-file)) and the text will immediatley begin to scroll down. This is great, if you want to read a large text. Simply test your prefered scrollspeed, adjusted for you speed of reading (scrollspeed can still be changed in the normal way), then set it perma- nently via the config-file. You can still stop movement/change movedirection with Space and Cursor-Up/-Down. The scroll-speed can temporarily boosted up by holding down the cursor-key for current scroll- direction. (Useful, if you want to skip a text- passage.) If you disable Reader's mode, the old speed value and the old autostop-state will be restored and the movement will stop. Such "radical" position-changes like Home, End, Search, PositionRestore will store the old position in a buffer, from where it can be restored. (The buffer with these positions will NOT be saved when saving the current position to the savefile.) The corresponding keys are: Alt-Up - Swaps the current position with the position before. Alt-Left/-Right - Cycles through the stored positions. Alt-Down - Jumps to the "latest" stored position if you have currently changed to another position (with Alt-Up or Alt-Left/ -Right). This is quite useful, if you cycle through some stored positions, and then want to go back to the old position. If you haven't cycled through positions, this combination will only store the current position to the buffer, so that the current position becomes the lastest stored position. P - Show all (numbers of) stored positions in a message line. (You will see this too, everytime you add or jump between positions. (At least, if [PosRestoreMsg] in VIEWS.CFG is enabled.)) Ctrl-P - Store position to a certain slot. (or Ctrl-K) This will ask you for a position-number where the current position shall be stored into. (The secondary key-combo - is for you Borland- IDE-users. :) Ctrl-G - Restore position from a certain slot. (or Ctrl-Q) Ask to which position number you want to go. (The secondary key-combo - is for you Borland- IDE-users. :) Esc - * Exit ViewS if no helptext is visible and no search in progress. * Stop searching when a search is in progress. * Hide helptext if it is visible. F10 - Save the current position to the savefile and exit ViewS. F2 - Save the current position to the savefile. F3 - Restore the saved position from the savefile. Ctrl-F3 - Restore any saved position from savefile, choosen by a list. F8 - Remove the saved position from the savefile. Ctrl-F8 - Remove any saved position from savefile, choosen by a list. Ctrl-Alt -Left/-Right - Save the current position to the savefile and jump to the previous/next file in the savefile. Ctrl-Alt -Up - Swap the current file with the previous loaded file. Ctrl-Alt -Down - Jump to the original loaded file. Ctrl-F - Jump to a file (from savefile) choosen from a list. H / F1 - This pops up the helptext. If it is already visible the helptext will jump to the next page. Use Up/Down, to scroll helptext. M - Show/hide last message. S / F7 - Request a string which shall be searched case- insensitive. (The string will be searched down from the top of the screen. If the string is found, it will be marked with a different background-color. This mark will be removed when the string scrolls out of top or bottom of the screen or is pressed.) For textfiles, ViewS will count the lines up to the found word in background, and show a message, when it's done. See info at -key, for more informations about line-counting. ViewS will temporarily disable some of the usual disk-caches, when it does a really big search, because this will speed up searching by about 40%. (Yes, this search- (and load-) routine is that optimized, that a disk-cache slows it down, weired ;) ViewS will recognize and disable: * NWCache (of NW-DOS 7 and Caldera OpenDOS 7+) * SmartDrv (of MS-DOS 6+) * PC-Cache (of ???) After searching is done, the original cache-state (enabled or disabled) will be restored. You can define the size, which will be considered as "big" (for searching), or disable this feature in VIEWS.CFG. (See [CacheOffSizeKB] in VIEWS.CFG) Shift-S - Search a string case-sensitive. N / Shift-F7 - Search the next occurrence of the previously search- ed string. Del - Remove the search-mark. (Next search (with ) will begin at screen-top.) G - Grab searchstring from screen. In this mode: Left/Right/Up/Down - Move around search-mark. Shift- Left/Right - Resize search-mark. Enter - Grab current search-mark. ESC - Cancel grab. Enter - Toggle selection bar (cursor) on/off. Space - Toggle selection of currently focused line. Ctrl-Del - Clear all selections. Shift-W - Write all selections into a file. If no lines are selected, ViewS will ask you, if you want to write the entire text. Shift-P - Print all selections as you see them. They will be printed with line-(word,formatted)-wrapping and expanded tabs (as I said: as you see them ;). If no lines are selected, the entire text will be printed. The printerport (LPTx) and the line-terminators (CR/LF, only CR, only LF) can be choosen in the cfg-file. Alt-W - Toggle linewrapping. (Linewrapping means, that, if a line is longer than the wrapwidth (which will be set to the screen- width for default), that line will be wrapped to the next line.) W - Toggle WordWrap. (Unlike the normal linewrapping, WordWrap will try to avoid broken words --> Instead of breaking a word exceeding the line, the word will be comple- tely put to the next line.) A new wrapmode is added since V1.98: Formatted Wrap. It will put wrapped parts of a line below the first real character (other than space or tab) of the line- begin. This way, indention of lines will be kept, even at wrapped parts of the line. Else, it works the same way like wordwrap. This can be activated/deactivated in the config-file only. (Option [FormWrap] in VIEWS.CFG) Shift-Left/-Right - Decrease/increase wrapwidth. (Press Ctrl additional- ly for faster changes.) Alt-T - Toggle viewmode. (Toggles between text-, and raw- mode.) (See above => commandline-option /MT /MF and /MR for further information) Alt-F - Toggle binary-filter. (Will filter all binary ASCIIs below 32 out.) C - Select next char-conversion-table. (See config-file [ChrTab] / [DefChrTab] for further information.) Shift-C - Reset char-conversion-table. (-> use normal ASCII- table) Ctrl-C - Select char-conversion-table from a list. A - Select next color-attribute-table. (See config-file [AttrTab] / [DefAttrTab] for further information.) Shift-A - Reset color-attribute-table. (-> no color-highlight- ing at all) Ctrl-A - Select color-attribute-table from a list. Alt-A - Toggle autostop. (If autostop is disabled, the movement won't stop automatically at cursorkey-release. It will only stop, when the cursorkey for the opposite direction or Space is pressed. If you press the corresponding cursor-key, the speed will be boost up while you hold this key.) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Alt-M - Switches to videomode with next higher number of lines (lines: 10-61). Shift-Alt-M - Switches to videomode with next lower number of lines. Alt-8 - Switch to videomode with 80 columns. Alt-9 - Switch to videomode with 90 columns. All These modes and every valid BIOS- and VESA-textmode can be set directly in the config-file. Ctrl-M - Choose videomode from a list. Ctrl-Alt-S - Switch to next higher screen-frequency. !! Warning: !! !! All these functions will change internal !! !! settings of your VGA-card. This could !! !! theoretically damage very uncommon graphiccards !! !! or monitors. !! !! As far as I know, this can't happen with any !! !! modern system, but I WILL NOT BEAR ANY !! !! RESPONSIBILITIES FOR ANYTHING WHAT COULD !! !! HAPPEN! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Alt-C - Toggle mousecursor. (Shows or hides the mousecursor.) Alt-L - Toggle display of linenumbers and lineoffsets in statusbar. Alt-H - Toggle between soft- and hardscroll. (With hard scrolling activated, -Cursorkeys will scroll soft, and vice versa.) Alt-P - Toggle position-bar ("behind" the statusbar) (see Statusbar above, for information) Alt-S - Toggle sound (beeps) on/off. Ctrl-B - Toggle background-display. (If enabled, every position on the screen, where no contents of the file is shown, will have a "ħ" instead of " ".) Ctrl-T - Toggle tabulator-display. (This doesn't disable the "interpretation" of tab- code (ASCII 9), but shows tabulator-spaces by a different color and a "ħ" instead of " ".) Alt-K - Toggle the original keyboard-handler. ViewS uses it's own keyboard-interrupt-handler. This means, that for default the old (system-) keyboard-handler is deactivated, so that you can neither activate any keyboard-controlled TSR, nor boot via Ctrl-Alt-Del. You can make ViewS call the old keyboard-handler additionally to avoid the problems. But another problem is, that on slow systems the old keyboard-interrupt could slow down ViewS what could result in an unsmooth scrolling. (Try it; If there are problems left it deactivated) Ctrl-R - Redraw the screen. (This is more or less a useless debugging-feature. ;-) Following is actually for internal debugging info: Ctrl-I - Toggle statusbar with internal info. Ctrl-Alt-F - Toggle timeshare. (Shows how much of the time, while the VGA-card redraws it's screen (around 1/70s), is used by ViewS. This time is shown by a blue border-color, starting at the top of the screen. As closer it gets to the screen-bottom as more time is used by ViewS.) _____________________________________________________________________________ Mouse-usage: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For default, vertical mousemovements (up/down) will change the speed, while the speed is as higher as further the mousecursor is away from the middle of the screen. Movement will stop, when the mousecursor is around the screen-middle. Horizontal movements (left/right) with left mousebutton pressed will result in direct changes of the horizontal textposition (first shown column). If you move the mouse to the left/right, the text will move to the right/left. The interpretation of mousemovements can be changed in many ways via the config-file: For vertical movement you can define: - Analog mode , (the default, see above) - Digital mode, where a certain distance from the screen-middle will result in movement with normal scrollspeed (as if cursorkey is pressed) (the scrollspeed doesn't depend on distance to screen-middle, but is constant) - No , which simply means, that vertical movements will be ignored. (See config-file [MsVertMode]) For horizontal movement available modes are: - Absolute , where the horizontal position of the text directly depends on the position of the mousecursor. - Absolute Reversed, as Absolute, but mouse move to the left/right will make the text move to the right/left. - Relative , moves the text left/right as far the mouse was moved left/right (after corresponding button was pressed) - Relative Reversed, as Relative, but left/right exchanged. (This is the default mode.) - No => horizontal movements will be ignored. (See config-file [MsHorizMode]) Additionally the size of the zone at the screen-middle, where the vertical movement will be stopped, can be set seperatly for Analog and Digital mode. (See config-file [MsDistA] , [MsDistD]) You can define a button for vertical and another for horizontal movement, which must be pressed for action. (Default: No button for vertical; Left button for horizontal) (See config-file [MsVertBttn] , [MsHorizBttn]) And last but not least you can set the mouse-button(s) for exitting ViewS. (Default: left and right button together) (See config-file [MsEndBttn]) _____________________________________________________________________________ Config-file: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Many features of ViewS can be adjusted by it's config-file VIEWS.CFG which must be "compiled" (transfered to VIEWS.EXE) by VIEWSCFG.EXE. (I decided to "compile" VIEWS.CFG by VIEWSCFG.EXE, because interpreting the textfile VIEWS.CFG directly by ViewS itself would increase the size of ViewS and slow down it's startup. In the compiled version (which is added to the ViewS-executable file) the program only needs to read a binary file without any interpretation, what is much faster and smaller.) If you change VIEWS.CFG and forget to compile it with VIEWSCFG.EXE , ViewS will no longer give you a warning-message, because the check slowed down the startup of ViewS too much (on systems without diskcache). For further information, please read the VIEWS.CFG (text-)file where every option is documentated. (Ok, I could put the complete CFG-file in this file. But this would be useless and only increase the size of the package. But if you think I should repeat the CFG-documentation here, please send me a message and I'll see (for the next version)...) So, that's all for now. THNX for listening :-). Bye, TW.