History of ViewS: ViewS V2.01b6 ~~~~~~~~~~~~~~ * (98-11-21) Fixed: 'Find same range once only' only worked correctly, if the expression contained a negative item. Now for example (SAMELINE test) will skip to the next line, if 'test' has been found in the current line (as it is intended to be). Added Fuzzysearch. The tolerance levels between 1 and 7 now try to include different types of spelling and typos of words in addition to the more loose distribution of the words. (Example: 'example' with tolerance level 2 will match also 'xeample' or 'exampel'...) * (98-11-18) Fixed: If SHARE was loaded, ViewS stopped with Runtime Error 06 when adding a new entry to the inputhistory. (Thanks to Andras for revealing this bug :) Seems like this fix also removed another problem: Hitting in filelists (e.g. -) actually killed one entry only. Any following s didn't remove entries from the savefile, but from the list only. * (98-10-07) Fixed: Multifilesearch could've been crashed if had hit too deeply nested subdirectories (or DOS had another reason to refuse to open a found file). * (98-10-03) Enhanced filemasks: Multiple OR-related filenamemasks. (separated by comma or semicolon) (all filenamemasks belong to the same path - i.e. search for different type of files inside the same tree) e.g. C:\SRC\*.PAS;*.TXT Negative filenamemasks allowed now. (AND-related to the previous positive mask, or to '*.*' if it's the first mask itself) (enclosed in square brackets) (more than one mask allowed inside square brackets - separate with comma or semicolon) (more than one square bracket blocks allowed) (but NO recursive blocks allowed!) e.g. C:\SRC\*.PAS[*TEST*.PAS] C:\SRC\[*TEST*.PAS] C:\SRC\*.*,[*TEST*.PAS] C:\SRC\*.PAS,[*TEST*.PAS],*.TXT;[Q*.TXT,A*.TXT] * (98-09-25) Fixed searchdialog: You can clear the filemask (disable multi- filesearch) now without leaving ViewS. :) Fixed a BooleanSearch bug which made the engine miss some valid patterns when using SameChapter or SameBlock ranges. Fixed: filenames in multifilesearch could have incomplete paths. * (98-09-24) Added [AutoClearSearch] to VIEWS.CFG. (Default is DISABLED now.) ENABLED: Searchmark is cleard if scrolled out of the screen. If this happens, SearchNext (key ) begins at screentop or in first found file again (if searching multiple files). (same as in older versions) DISABLED: SearchNext will always search for the next occurrence relative to the last one, no matter whereto you scrolled meanwhile. (default now) Fixed - (switch to next vidmode). Works correct with (Start)VidMode=0 (use current mode) now. -- (switch to previous videmode) works again. Added filename completion () to the "write selected lines into file" function (-). * (98-09-16) Added - to eject paper from the printer. (FormFeed) * (98-09-14) Changed (/improved?) the binary/text detection once again. =) * (98-09-03) Fixed a bug in the BooleanSearch engine. (could have shown up in some binary files) * (98-09-01) Forgot to mention: When searching multiple files, you can hit - to begin searching in the next file instead going on inside the current one. ViewS V2.01b5 ~~~~~~~~~~~~~~ * (98-09-01) Added multifilesearch. Just enter a filemask in the search dialog to search these files instead of the current one. (filemask allows enhanced DOS wildcards; asterisk '*' may be used _in front_ of patterns too; asterisk may be used in drivespec too (includes all existing drives except A: B: and SUBST-drives); multiple drivespecs allowed (e.g. 'C:F:E:\*.*') ) Directories can be searched recursively (subdirectories). The filemask inputline supports a 4DOS-like name-completion; Just hit once or more. * (98-08-29) Lineselectioncursor (nice word, isn't it? ;) now scrolls again when it reaches screen-bottom/-top. (bug introduced in v2.01b3) Fixed lineselectioncursor in emulation support; doesn't overwrite messages anymore. * (98-08-28) Hopefully fixed those keyboard-problems in NT DOS-Box finally. ViewS V2.01b4 ~~~~~~~~~~~~~~ * (98-08-18) Finally fixed that bug preventing ViewS from running on Matrox graphic cards. (one shouldn't read the retrace flag 16Bit-wise =) Big thanks to ALB ([AMIGA] /PC/Matrox owner) for helping! :) ViewS V2.01b3 ~~~~~~~~~~~~~~ * (98-08-16) Added support for VGA emulations (Linux DOSEMU, NT DOS-box, ...) without splitline/startaddr/pel-panning. With emulation support enabled, ViewS will write into the first page of video memory only, and won't use (soft-)scrolling or splitline technics. ViewS will try to detect if it runs on such a limited emulation to enable the support appropriate. If the detection fails, use switch /E+ or /E- to force enabled/ disabled emulation support, or hit -. Worked around a bug in the NT DOS-box. If ViewS waited for you to release all keys (e.g. Searchfunction) and Numlock was active initially, it stopped till Numlock had been hit. Reason is a flaw in MS's implementation of the keyboard flag (40h:18h). Added [FlashMsg] option in VIEWS.CFG; thus you can disable the flashing colors of the messages now (if you don't like them). (If you disable them, you should maybe change [MsgAttr] too, at least if you don't want messages shown in magenta. =) * (98-08-12) Fixed a problem with very high textmodes like 132x60. Fixed message showing vidmode-switching. ('Switched to ...' showed previous, not new resolution.) Changed the way ViewS calculates the number of scanlines for the current resolution. Hopefully statusline is placed more reliable for strange resolutions now. * (98-07-08) Fixed 'FindRangeOnceOnly'-option (searching) - did miss matches beginning directly behind the last match in 'Simple Search' and did sometimes still match twice inside the same range in 'Boolean Search'. * (98-07-07) If you restore the position for a modified file, there won't be a warning-message anymore (that the position could have become invalid), but the line-numbers will be recounted and it's made sure, that reading can't begin *inside* a line. * (98-07-06) Fixed a small bug; ChrTab/AttrTab wasn't set when saved filedata was loaded (F2/F3). (this bug was introduced in V1.99á1) Added a 'Show0nFF' attrib- and char-table in VIEWS.CFG and made them the default tables. Both together allow you to distinguish ASCII 0 (now: small grey point) and ASCII 255 (hex: FF) (now: small grey rectangle) from Space (ASCII 32). (ASCII 32, 0 and 255 look similar normally) Quite handy sometimes. Can be disabled in VIEWS.CFG. ViewS V2.01b2 ~~~~~~~~~~~~~~ * (98-07-03) Added the possibility to specify a tolerance value (in percent) for boolean expressions containing AND-linked sub-expressions (patterns). This way, not all of the sub-expressions must match, to make the parent-expression match. (Keyword: 'Tolerance' or 'TLR' followed by the value, with an optional colon or equal-sign before - just like xDIST-values) (E.g. (TLR=80 1+2+3+4+5+6+7+8+9+10) requires only 8 of the 10 patterns to be found.) (Dont' know if this is useful in "normal live" , but I need it for some experiments with fuzzy search...) Fixed a boolean search related bug, which could cause some false hits under rare conditions. (Problem with determining the distance between words/lines at certain file-offsets.) ViewS V2.01b1 ~~~~~~~~~~~~~~ * (98-07-01) Oh oh, just found and fixed another bug in the boolean search. (Just wondering, why it didn't show up before.) Seems to manifest only in conjunction with 'Sequenced AND' (ANDS), although I can't yet explain why only there... strange. Fixed a little bug in the input history (somehow gets embarrassing now ;). (Added entry to history list -> saved fileposition -> opened history list -> cursor falsely not at last entry.) Fixed another little bug in the boolean search function: Patterns encapsulated by the quote-symbol (e.g. "pattern") and linked by the ANDS-operator (sequential AND) where treated as linked with a normal AND. Fixed: Boolean Search with wrapping from end of file to begin of file ('wrapped search') could end in an error msg sometimes. Added 'Tolerant Search'. For 'Simple Search' (not boolean search) you can define a tolerance level from 0 to 6 now. Level 0 is the 'old' exact search, while level 1 to 6 allow a more 'loose' distribution of the words contained in the pattern. (It's no real 'fuzzy search' up to now - it doesn't find words with different spellings.) (see chapter .6.2 in VIEWS.DOC) Seems like I will have to do another release real soon - there were still much too many errors in V2.00. :-/ * (98-06-30) Added 'Save Config' (keys - and -) which will just save the current state of all options/settings of ViewS (into VIEWS.EXE itself). As this function does the same thing as VIEWSCFG.EXE, that is writing the configuration data into VIEWS.EXE, but doesn't change the actual config-file (VIEWS.CFG) itself, these saved settings will be overwritten when you run VIEWSCFG later. Added [AutoSaveCfg] option in VIEWS.CFG. If you enable it (it's disabled by default) your current settings will be saved automatically when you exit ViewS. Added [DefSearchType] in VIEWS.CFG, so that you can set either 'Simple' or 'Boolean' search now as the default type for searching. Added '...Dist' ranges to [DefRange] in VIEWS.CFG. (CharDist, WordDist, and LineDist). Added [DefDist] for use in conjunction with '[DefRange] ...Dist'. * (98-06-29) Fixed a small bug in the input line. (The 'inputhistory-symbol' - the down-arrow - at the right end of the input line could be overwritten with some input data sometimes.) The new search interface is ready. Key or now brings up a window with the usual input line and all search options which can be changed by their respective -key combinations. Key combos -/ (Boolean Search) and - (CaseSensitive Search) are disabled now. Key doesn't belong to 'CaseTolerant Search' anymore, but will use the last set Case-sens./-tolerant setting in the search window. The old behaviour (- casesens.; casetolerant; -/ Boolean Search) can be restored by enabling [ClassicSearch] in VIEWS.CFG. ViewS V2.00 ~~~~~~~~~~~~ * (98-06-29) Fixed a very nasty bug, preventing the boolean expression search from working... (Just forgot to reset one register to zero in the inner loop. And of course it was zero anyway when entering the search function - until I released V1.99. What a coincidence :-/) Fixed a bug in the input history. Crashed when entries with a length above avout 70 chars appeared in the list. Added key as synonym for (GoTo-function). Just to make the live easier for people knowing HIEW. :) Sorry that V2.00 is just a fix-release, but somehow two very bad bugs slipped through the testing of 1.99, and I don't want to release a V1.991, cause VIEWS1991.ZIP is too long. ;) ViewS V1.99 ~~~~~~~~~~~~ * (98-06-25) Added 'GoTo'-function. Key will ask for the offset of the new position, key asks for the line. Key (GoTo) will ask for an offset or a line, depending on what's shown (ofs/line) in the statusline currently (e.g. if you are in Raw- or in Text-mode). It will assume decimal values per default. If the value begins with '0x' or '$', or ends with 'h', or contains characters between 'A' and 'F', then it's taken as hexadecimal. You can make ViewS assume ALWAYS hex offsets (not lines), by enabling [ForceHexOfs] in VIEWS.CFG. Added (Goto related) commandline options /L and /O. Use /O to move the screen to a certain file offset and /L to a certain line number initially. (Both will override saved positions, and accept hexadecimal values with the same syntax mentioned above (for 'GoTo'-function).) Added commandline option /F which will activate the line- selection focus (like key ) already at startup. (could be useful in conjunction with /S...) Added key which will (like ) toggle the selection of the currently focused line (if selection focus (key ) is active). (If you use an "orthodox filemanager" like VC, NC or UFO you will know why. ;) That's enough testing (what testing? ;) V1.99 will be released this night. * (98-06-23) Homepage (http://www.comports.com/obiwan) is online :) Searching shows an own position bar (progress bar) now. (So you can see which part of the file is analyzed currently.) * (98-06-22) Added a wrapped-search option. If it is enabled and searching hits the fileend, then it will continue searching at filebegin (till the point where the search has started). In conjunction with SearchNext ( or -) it will remember where the initial searching has begun and search up to that point after wrapped to filebegin - so no position can be found more than once. You can choose if this feature is always activated or never, or if you want to be asked to decide when fileend is reached. (in VIEWS.CFG: option [WrappedSearch] On|Off|Ask) ("Ask" by default.). Changed SearchNext-function so that the previous search-result isn't cleared anymore, if SearchNext failed. With the old behaviour it would have started to search at screen-begin again when doing a new SearchNext after a failed try. The new will just tell you again that nothing has been found. You will have to clear the old search-result () or start a new search then. I think this is more logical and besides gives you the correct number of hits (via the position-number; key

), if you just kept holding the -key till the search failed, now. * (98-06-17) You can choose now if you want the history-list checked for duplicated entries when you open the history-list (the old behaviour) or when a new entry is added to the list. The second choice (check when add) will have no delay when opening the history-list, but maybe a short delay when adding a new entry to an already quite long list. I prefer this short delay to the longer delay at listopening, but it's you choice. ( [CleanHistory] (No,AddChk,ListChk) in VIEWS.CFG. ) * (98-06-12) When you open an input-historylist, succeeding identical entries are (permanently) removed from the list now. If you don't like that you can disable it via [CleanHistory] in VIEWS.CFG. (Try this, if you experience a delay when opening the history- list.) * (98-06-11) Fixed a small bug regarding the search-function. (Under rare conditions the reported found-offset could be a few bytes too low.) Added - which will search for next match with (temporarily) CenterFoundForced enabled. (This will center matches on the screen.) You can confirm input (in inputlines) with - now. In opposition to this will not memorize the input (as if InputHistory would be disabled). * (98-06-10) Added an input-history. Means: Everything you type in an inputline (and confirm with ) is memorized, and can be brought back into the inputline for recycling ;) (pressing or inside an inputline, will bring up a (scrollable) list with earlier inputs, which can be confirmed by or , removed from the history by (without any confirmation) or canceled by ) For more information read VIEWS.DOC chapter .5. (the history can be disabled via [InputHistory] in VIEWS.CFG; related entry: [PromoteHistory]) Added a 'remove'-function (key ) to all the savefile- lists (-, -, -) which will remove the currently selected entry (similar to in InputHistoryLists) from the save-file. There will be *no* confirmation-request! (Maybe will change later... don't know if needed.) Changed behaviour of . It still stops scrolling, but if AutoStop is deactivated (e.g. in Reader's Mode, key ) it can also start scrolling now. (Requested by user :) (In Reader's Mode: hit to stop; hit again to continue) Fixed colors of lists. (Didn't was a problem as long as you doesn't changed [WinAttr].) There are three new color- keywords ( [ListAttr], [ListHeaderAttr], [ListCursorAttr] ) now. ViewS V1.99á1 ~~~~~~~~~~~~~~~ * (98-06-03) Fixed a little bug sometimes showing wrong tabulators after startup. Added a [ShowLocked] option in VIEWS.CFG. You can disable the screen-darkening (signaling a busy (non-scrollable) screen) now, if you don't like that hard change of brightness. (btw, I fixed that related bad flickering happening during fast searches...) (Requested by User) * (98-06-01) Adjusted the colors of the FocusLine (btw, can be changed now) () , Selections and FoundMarker so that they fit a bit better together. (I'm still not absolutely happy with them, but didn't found a better combo.) ViewS is now completely 80286-compatible again. (I hope I didn't forgot something... Please tell me, if there are problems.) Fixed a bug in the FormatWrap-function (lines with much leading spaces were drawn vertically at the right border (wrapwith=1)). * (98-05-31) Sorry, but the first version of that BoolSearch was much too slow and somehow instable =). The new version is releasable now I think (or hope). But it still needs some testing so the (non-beta) release will still take some time (Especially now, when my onboard COM-ports are history. RIP. I gotta get some FIFO-card before I can upload anything... :-( ) [rules...] Rewrote the searchresult-marker. It can show results including multiple lines now and is more reliable. Temporarily removed the GetSearchStr-function (key ). (I mostly just used it as a ruler... ;) Added a real ruler . (-) It can be moved around on the current screen, and shows it's length (changed with +/- or - /) (length on screen (in chars) and in file (in bytes)), the number of the line it's currently in and it's start- and end-offset (in file). Added a CenterFoundForced-option, which will center the screen always at the search-marker, even if it was already in the current screen. (Makes it easier to survive if you get maaaannnyy hits.) (Option [CenterFoundForced] in VIEWS.CFG) Fixed some bugs generally related to searching. Fixed a bug usually happening when beginning to scroll upwards and hitting an empty line then. It normally just showed some distortion in the position-bar (in statusbar). * (98-05-12) Just finished a more or less usable version of the boolean expression search. (It's still quite slow for some complex constructions. I will redesign it soon... :) (- or - will invoke the BooleanSearch; I will change the interface (which is currently just an input- line) to be a bit more userfriendly...) ViewS V1.99á ~~~~~~~~~~~~~~ * (97-12-07) Added [FastMouseReset] option to VIEWS.CFG for you poor users of Microsoft-mousedrivers. This should fix the long delay at start and exit of ViewS, if you haven't installed a reasonable mousedriver. (I can recommend the freeware CTMOUSE (CuTeMOUSE)- driver which fully supports Microsoft-, Mousesystem- and Logitech-mode, with less than 8KB memory-needs, and being much faster than Microsoft's own... :-)) * (97-12-06) Added support to read from standard-input (STDIN) which is useful for piping or redirection. Just use an asterisk "*" as filename, to read from STDIN. (Examples: DIR | VIEWS * ^--pipe-symbol to redirect DIR's output to ViewS) (Just make a batch-file (e.g. VMORE.BAT or VM.BAT ...) which con- tains VIEWS * and throw away the MORE-command. ;) ViewS V1.98 ~~~~~~~~~~~~~ * (97-12-02) Reworked info-output of VIEWSCFG. (It was a bit "overdone". ;) Fixed a little bug in PACKTXT (directory UTIL\), which prevented the reduction of certain space-sequences. Hmm, I should've released this version long ago... Think I will do it this evening... :] * (97-11-23) When searching big files, ViewS can temporarily disable some of the usual disk-caches now: (* NWCache of Novell-DOS (now Caldera OpenDOS 7 :) * SmartDrv of MS-DOS 6+ * PC-Cache (???)) (I wanted to add HyperDisk too, but my API-infos about it seem to be wrong :-( I'll see.) This will speed up big-searches by about 40%! What "big" searches are, is defined by [CacheOffSizeKB] in VIEWS.CFG. * (97-11-22) When Wrapping is deactivated, ChangeWrapLen (-/ ) now begins at the default WrapLen (as Wrap was activated) and not at 65532 (highest WrapLen). If [PosRestoreMsg] in VIEWS.CFG is enabled, now a list of all saved positions, with the current position highlighted, will appear in the message line (when a saved position is restored). [PosRestoreMsg] is enabled by default now. Key

will bring up the same list (of saved positions), even if [PosRestoreMsg] is disabled. Changed the statusbar-layout a bit. Information about saved position is gone (key

is a better solution), and the number of selected lines is only shown, if the SelectionCursor () is active, or at least one line is selected. Added SavePositionNr (-

or -) so that you can save you current position to a certain slot, and GoToPositionNr ( or -) so that you can jump to a certain position-slot. For SavePositionNr: If there is already a position with that number, it (the old) will get a new number at the end of the position-chain. The first keys (-

and -) are choosen by logic (save_P_osition and _G_otoposition), while the secondary keys (- and -) are there for Borland-IDE- compatiblity (I love the TP7.0-IDE :-). Saved Positions will remember the search-markers now. So when you restore positions which were stored by the search-function, you will see the found text again. Improved WordWrapping a bit. (Non-"word"-characters at the end of the line aren't wrapped too early anymore, even if there is a "real word" following. And I've chosen a better set of Non- "word"-characters now.) Added a new [FormWrap]-mode. Can be "RightAlign" now, so that wrapped parts of lines will be aligned with the right border of the screen. (The old "On"-setting of [FormWrap] has the synonym "KeepIndent" now, and the "Off"-setting can be given as "LeftAlign".) Changed the beeps a little bit. I "like" it more now. ;) * (97-11-19) Added print-function. (-

) Either the selected lines, or the entire text is printed (if no line selected). The text is printed, as ViewS shows it. Means: wrapping, filtering and tab-expansion is the same on the printed text. Printerport (LPT1..4) and line-terminator (CR/LF, CR, LF) can be selected. (Options [PrnPort] and [PrnCRLF] in VIEWS.CFG) * (97-11-16) Now WriteSelection (-) asks you if you want to write the entire text, if no lines are selected. * (97-11-15) Fixed a little bug in the line-counting-routine. Added key - for toggling between soft- and hard-scrolling. * (97-11-08) Added a new wrapmode: Formatted Wrap. This will put wrapped parts of a line under 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. (Option [FormWrap] in VIEWS.CFG) * (97-11-06) Just fixed a little stupid bug, which, under very rare conditions, caused an access-violation-exception. Nothing serious, just stupid. ;-] * (97-10-30) Now you can choose if you want / to scroll hard, when is pressed (as it was before), or as default (with up). In this case - will scroll soft. (Option [HardPage] in VIEWS.CFG) Normal scrolling with / now has a "hard"- mode with hold down, too. As with - hard- scrolling can be made default by option [HardScroll] in VIEWS.CFG. (That's for you people, who get motion-sick by seeing soft-scrolling (Hi Timmy ;))) (Btw, if you want faster hard-scrolling hold down . If you want fastest scrolling, hold down too. ;->) ViewS V1.97á ~~~~~~~~~~~~~ * (97-10-29) CaseINsensitive-search is back. (No speed-loss! :-) Linenumber-count when searching is back too, but now in a more efficient way: Only counted, if not in RAW-mode (-) or if linenumbers are shown in statusline (-). And now (due to technical (TSearch) reasons), lines are counted after and not during the search. But don't worry; the count works completely in background. You can still work (read,move, search,exit...) while the lines are counted. The same is valid for move-to-EndOfText (key ). (Linecounting only if needed and in background.) The textscreen will darken now, when it can't be controlled (when searching, waiting for user-input...). Fixed a small bug related to Attrib- and CharTable when switching between Raw- and Text-mode. SWTCH.EXE will now swap to EMS/XMS/Disk in order to get more free memory for the viewers. (Thanks to Thomas Wagner for his PD-exec- library.) * (97-10-20) Implemented a new read- and search-algorithm (TSearch), which made searching MUCH (around 90% !) faster. Up to now, case-sensitive only. Will be fixed. (Btw, it's faster if no diskcache is active... weird, I know ;-)) Oh, currently the line-nr. won't be updated during/after a search. Will be fixed. Fixed the percent-overflow-at-very-big-files-bug. VTXT2EXE currently not working - was trashed during the startup- acceleration... (means, only the old VTXT2EXE (v1.96) will run, and the "up-to-date" ViewSCFG won't be able to configurate VTXT2EXE-made EXEs) * (97-09-27) Accelerated startup of ViewS. Wasn't a big problem if a disk- cache was loaded, but if not... heavy disk-activity. ;) (During this the [SavDatFile] option in VIEWS.CFG was removed. It wasn't very useful anyway, I think. Now, VIEWSAV.DAT will always be put in VIEWS.EXE's directory.) (Oh, and the check, if VIEWS.CFG is newer than the cfg-data in VIEWS.EXE is gone too. Maybe it will be back later...) * (97-07-19) Just replaced my good old ET400W32 with a ET6000, and found ViewS to flicker!!! Fixed it. Should work with all VGA-chipsets now. (The ET6000 doesn't allow changing of the vertical panning (soft- scrolling) right after the vertical retrace - it will be pending until the next frame. Setting it before the wait_for_vertical_ retrace routine fixes this problem.) * (97-08-13) Found and fixed a little bug: when [CallOldKbHandler] in VIEWS.CFG was ON, the keyboard-buffer wasn't cleared, which resulted in the wellknown keybuffer-overflow beeps. (This didn't happen when switched during runtime via Alt-K (just forgot something).) ViewS V1.96 ~~~~~~~~~~~~~ * (97-04-29) The SAVE-FUNCTION remembers char- and attrib-tables now. (I know, it should have been there just from the beginning... but since I'm obviously the onlyone to use ViewS..., I really don't know why I'm writing this... oh my god, I'm talking to myself again !! ;-) (V1.95 was skipped, to keep ViewS out of this shit ...95 trend ;-> ) (Hiroshima 45, Tschernobyl 86, Windows 95 ;) ViewS V1.94á (2.4.97) ~~~~~~~~~~~~~ * (1.8.96) corrected commandlineoption /W bug (/W- didn't turn wrapping off, when wordwrap was enabled) * (15.8.96) press while scrolling vertically, for doubled speed ViewS V1.93á (3.6.96) ~~~~~~~~~~~~~ * added function to extract parts of the file ( New keys: - : switch selection-bar on/off - : toggle selection of currently focused line - -: clear all selections - - : write all selected lines into a file New commandline-option: - /S[+|*] : write selected line into file automatically at exit ) * added VTXT2EXE - an text_to_executable-"compiler", which makes textfiles selfexecutable, based on a smaller version of ViewS (features basic functions only) * ok, I must confess: the search-function *had* still another bug: Searchstrings in wrapped lines were highlighted wrong! -> just fixed... should be ok now. * again changed the wait-function (for beeps). It uses the PIT-Channel0 now, which should be more exact and stable than the VRetrace (which depended on screen-frequency and desktop-environments (as O*/2 or Windoze)). * fixed a little problem with the save-function * fixed a little keyboard-handler-bug * some internal changes ViewS V1.92á (11.4.96) (not the final version ;) ~~~~~~~~~~~~~ * added Grab-Search-String function () Now you can grap any string from the current screen for searching. (Use the cursor-keys for moving the selection around, and - / for changing the size of the selection. Confirm with or abort with . After confirming the selection, the selected string will be taken as the searchstring. Search for it with or edit and search with [-] . ) * removed "NumLock-Searchstring-Selection" (it was crap) * interrupts are locked now during the critically timed scrolling-parts Previous versions of ViewS began to flicker while scrolling, when some "heavy" programs (like MOD-Players and so on) ran in background (may be as TSRs or in multitaskers...) This should fix that problem. (Don't dare to flicker again, you shitty piece of code... ;-> ) (Ah, now even the timeshare works w/ CubicPlayer in the background ;-) Oh btw, this could probably cause a problem with such fake multitaskers as Winshit 3.1! AFAIK they sometimes get problems, when interrupts are locked. So you can deny the int.-lock by setting [NoCLI] (in VIEWS.CFG) to ON. __About one hour later...__ (5:15 in the morning) Sorry, but I've just found another problem: Although ViewS runs smooth now, the backgroundtask is radically slowed down by this fix. This is a big problem for moduleplayers. The sound plays more slowly and stops sometimes. (See below "Timingproblems" for an explanation). I had to introduce another option, to avoid this new problem. If you realize problems with background-soundplayers, try to lower or raise the value [DelayCLI] (in VIEWSCFG). * yeah, I found some bugs in the search-function Didn't fixed them up to now... ViewS V1.9 (around 6.3.96) (maybe the final version...) ~~~~~~~~~~~ * added WordWrap, where a word will be completely put to the next line, if it exceeds the current wrapwidth (linewidth) instead of breaking the word to the next line. (key: ) (in VIEWS.CFG: [Wrap] Word ) * added keyfunction - for case-sensitive search * added Filtered textmode (-), where all ASCIIs below 32 is filtered out * added Char-conversion-tables + [ChrTab] and [DefChrTab] in VIEWS.CFG + , -, - in ViewS + commandline-option /C * added color-attribute tables (color-highlighting) + [AttrTab] and [DefAttrTab] in VIEWS.CFG + , - and - in ViewS + commandline-option /A * added selection of search-strings (words) directly from the screen. (keys: and NumPad-) * added possibility for scrolling the screen "below 0". (key: ) (in VIEWS.CFG: [ScrollLock]) * added - for resetting horizontal position to 0. * analog (vertical) mouse-mode got a little bit finer (begins now with speed 0.5 instead of speed 1) * added videomodes with any number of lines from 10 to 61. * added videomode with 90 columns (+ keys -<9> and -<8>) * added -- for choosing the previous screenmode * added - for choosing screenmode from a list * changed [VideoMode] entry in VIEWS.CFG. Now it can be: L - in [10..61] - for setting number of lines (e.g. L25) or C - is 80 or 90 - for setting number of columns (e.g. C80) or X - is 80 or 90/ in [10..61] - for setting number of columns and number of lines (e.g. 90x61) * added - for a list of all files saved in savefile * removed [SavChkNoDir] from VIEWS.CFG * added - to load any stored position from savefile * added - to remove any stored position from savefile * added selection of current screen-refresh-frequency (out of 4 internal VGA-frequencies) + [ScrFreq] in VIEWS.CFG + -- in ViewS * removed a bug which caused some errors when counting wrapped lines * mouse-position will be restored correctly at exit now * the wait-function (for the beeps) now uses the horizontal-retrace-flag of the VGA-card for timing, instead of INT 15h/AH=86h (This should avoid the problems of some DX2-systems with buggy INT15h-BIOS- function...) * search-routine now 50% faster * endsearch-rountine now 35% faster * added Sw(i)tch * changed some internal stuff... * creatively introduced some more bugs ;) (hmm, did I forget something ???) ViewS V1.8á6 ~~~~~~~~~~~~~ internal... ViewS V1.8á5 ~~~~~~~~~~~~~ First release... -------------------------------------------------- ("Timingproblems" (I promised it ;->): You know, that a *smooth* scrolling requires, that all screenchanges are made during the vertical retrace. Now there is the typical loop, where you wait for it, by watching the VRetrace-Flag. Now it can happen (and it does so very often), that the background- task takes control just before the VRetrace begins and holds the loop some cycles while the VRetrace is already over. So the wait-loop doesn't realize the VRetrace and waits one full frame until the changes can be done. The result is the heavy flicker known from earlier ViewS-versions. Now you think, the solution is easy. Use a CLI to avoid, that the back- groundtask takes control while you are watching the VRetrace-Flag. That's just what I made one hour before. Here comes the new problem: ViewS is that fast (he he ;), that it only needs around 1% to 5% of a frame (on my AMD486-120) to do all the work. The remainder is spent in the loop waiting for the VRetrace to happen. All over this "rest" the interrupts will be locked; the background-task will be disabled. Now imagine that the background-task gets only 1-5% of the time and you can imagine the slowdown (of the music). The solution for this, is to slowdown ViewS that way, that the waiting- loop (where the interrupts are locked) will get less time. So I simply put another loop in front of the VRetrace-Wait, and wait a bit (about 70% of a frame), while the background-task can do it's job. Of course I used the PIT-channel #0 to get software-independed. Actually this loop should work fine on any system. But inhomogen timing of background-task and different system-speeds can still cause slowdowns or flickers. So I put the DelayCLI-value in the config-file so that you can adjust the length of the "front"-loop. But unfortunately there is no "best" value for it. If it is to low, the background-task won't get enough time. If it is to high, ViewS can miss the VRetrace, so that the scrolling will flicker and the background-task is delayed again. Uhh, problems over problems... bye. ) Bye TW.