Dec 232017
TSR backscroll utility - Uses expanded memory. Source code is included.
File WAS062.ZIP from The Programmer’s Corner in
Category Display Utilities
TSR backscroll utility – Uses expanded memory. Source code is included.
File Name File Size Zip Size Zip Type
SPCPAK.C 2768 1125 deflated
SPCPAK.EXE 9023 5741 deflated
SUMMARY.062 10880 1396 deflated
W-DOC062.SUM 4315 1277 deflated
WAS.COM 10731 5653 deflated
WAS062.ASM 119912 23315 deflated
WAS062.DOC 23379 7062 deflated

Download File WAS062.ZIP Here

Contents of the WAS062.DOC file

Version 0.62 of WAS.COM
Copyright 1990 by Charles Lazo III
All Rights Reserved

WAS is a program that once loaded becomes memory resident. Thereafter it
captures lines that scroll off the top of the screen to a scroll back buffer
kept in expanded memory. If an attempt is made to reload WAS after it is once
loaded it will buzz the speaker and state that WAS is already loaded. Only
after an improper installation of WAS will you hear this buzzing sound. If
the sound is heard at other times--after WAS has been successfully loaded--
then the sound denotes a bug in the program and WAS will probably not function
properly after that.

WAS will display upon a user's screen the content of previous screens/lines
that have scrolled off the top of the screen. To perform this action WAS uses
the Scroll Lock key. If other software in the system is also using this key,
then such software and/or WAS may fail to operate properly. (Note, however,
the descriptions of the '+' and '-' switches below.) WAS necessarily requires
the use of EMS memory. It should work with EMS versions 3.2 and later, but
it has only been tested on versions 3.2 and 4.0. Emulated EMS memory should
work fine.

WAS is "Gratisware", that is, software that while copyrighted, may be freely
distributed. See the notice at the end of this document for the nature of the
copyright restrictions. A disclaimer also applies to WAS. The author is not
responsible for any damages that are caused by the use of the program whatever
their nature. By using the software you agree to this provision. Having said
that there is from the author's point of view, only a slight probability that
any damage can occur. A worst case situation would be that WAS may lock up
the computer when the Scroll Lock key is pressed. The probability of problems
will tend to decrease as users of the program report them to the author.

A few minor problems have been reported with version 0.50 and these hopefully
have been fixed with this 0.62 version. Most of the difference between 0.50
and 0.62 is internal. Principally this has been the addition of code that
allows WAS to work with device drivers that extend the keyboard buffer, moving
to an internal stack when WAS is in the hold state and clearing the prefetch
queue after each I/O operation. Three new switches have been added, the "d"
switch is a kludge fix for a problem that is due to the way in which video
function 0eh is implemented in the Orchid VGA BIOS that is installed in the
system on which this version reached its final phase. The problem was that
each line in the scroll back buffer was appearing twice. Hopefully I'll be
able to auto detect this anomaly in at some point and thereby avoid the use
of this switch. Another switch added with version 0.62 is the "v" switch.
When used after the initial installation this switch will display the version
number and copyright notice. Finally, the "e" switch enables the exiting of
the WAS Scroll Lock hold by pressing the ESCape key.

To install WAS simply enter the number of EMS pages (16k bytes each) to devote
to WAS on the command line after the program's name following either letter
"b" or "B" (no spaces allowed between "b" and the number), e.g., for a 20 page
(EMS pages) scroll back buffer (320k bytes of EMS memory) simply enter this
line at the DOS prompt or in a batch file:

WAS b20

Each EMS page will be enough to save approximately 102 lines of text. (Part
of the the memory assigned will be used to save up to 60 lines of the current
screen for later restoration when WAS leaves the Scroll Lock state. Thus by
assigning only a single EMS page to WAS you will have enough space to store
about two screens of 25-line text in the scroll back buffer. (See, however,
the description of the 'l' switch below.)

Now that you know how to install WAS it might be easier to comprehend what
follows if you leave whatever editor, file lister, etc. that you happen to
be using to view this documentation, load WAS and then practice using the
commands described below while reading the remainder of the documentation.
(You can install WAS, TYPE this file to the screen, and then view it from the
WAS scroll back buffer.) Alternatively, you do not have to read the remainder
of this file at all; WAS by default loads a command summary into the scroll
back buffer memory and that may be all you need to get started. Just install
WAS, press the SCROLL LOCK key and then the HOME key to read the command
summary in the scroll back buffer.

If at some point in time you find the command summary superfluous you can tell
WAS not to load it by using the 'n' switch on the command line when you run
WAS, e.g.:

was nb20

WAS should perform adequately on all types of video hardware: MDA, CGA, EGA,
PGC, MCGA, VGA, etc. Only 80 column text modes are supported. Any other
column size will definitely be incompatible with WAS.


More about WAS Installation Options

WAS installation options (command line switches) are symbols placed on the
command line of WAS which are followed perhaps by numbers or other symbols
that tell WAS how you want it to be installed. Switches may be used in small
case or capitals or any combination of case. Spaces may be placed on the
command line separating the invocations of each, but the parameter(s) of a
switch (if any) must follow the switch without any intervening spaces. This
version supports six switches:

'b' (Buffer size) Already described.

'd' (no double lines) This switch is introduced in version 0.60 to fix
a problem that occurs due to the way that at least
one instance of the Orchid VGA BIOS implements a
a BIOS TTY screen scroll. Possibly other video
BIOSes do something similar producing the same
result which is the doubling of lines in the scroll
back buffer. If you have the line doubling problem
with WAS then try this switch, otherwise ignore it.
An attempt will be made to auto detect the problem
and so as to eliminate this switch in the future.

'e' One person responding to my request for feedback
mentioned that he would like the ESCape key when
pressed to cause WAS to exit the hold state just
as the Scroll Lock key is designed to do. That
would be fine on systems that were AT compatible,
but using ESCape to exit the hold state on PC or
XT systems would cause the scroll lock state (used
by WAS to signal a hold condition is desired) to
be out of sync with the keyboard status LED for
the Scroll Lock key. So if you are using a PC or
XT system and you don't mind the out of sync
problem, then go ahead and use the "e" switch if
you want ESCape to exit a WAS hold. YEAH FEEDBACK!

'l' (maximum Line size) The 'l' switch uses a number parameter like the 'b'
switch. It sets the maximum number of screen lines
that WAS will save for the current (last, bottom,
active) screen. This number must lie between 25 and
101 inclusive. It is the maximum number of screen
lines that will ever be displayed on the terminal(s)
on which WAS is used. For example, monochrome and
CGA displays typically use no more than 25 lines
maximum. EGA usually is limited to 43 lines, and
VGA to 50 or 60 lines maximum. Default for this
parameter (no 'l' switch specified) is 60 lines.
Making this number as small as possible will give
you additional lines in the scroll back buffer so it
should be small; however, WAS will not work properly
if it is set too low. If you are using WAS on a
system that can display a large number of lines, but
you intend to never use more than a certain number,
say 28, then it would be okay to use the 'l' switch
to specify 28 lines maximum (and similarly for other

'n' (No command summary) Include this switch if you do not wish the command
summary to be placed in the scroll buffer when WAS
is installed.

's' (annex Summary file) The 's' switch is used after the WAS source code has
been freshly assembled, linked, and exe2bined to
form a .com file). More information about the 's'
switch can be obtained by running WAS without this
switch after a newly made WAS.COM file is produced
by assembling the source code.

'v' (show version) After installing WAS the version number (and the
same copyright notice that appears at installation)
will be displayed.

'+' (enable WAS) If you install WAS using the '-' switch all of the
and processing it normally does will be disabled until
'-' (disable WAS) you run WAS at some later time with the '+' switch.
WAS defaults to being active (enabled) and WAS can
be run again with either '+' or '-' switch at any
time after the initial install to change the enable/
disable status. Disable WAS if you intend to use
software that also uses the Scroll Lock key, thereby
preventing conflicts.

V, +, and - are the only switches that are effective
after the initial installation.



WAS -n b80 Installs WAS with a scroll back buffer of 1310720
= 1280k bytes. (1310720 = 80 EMS pages). No
command summary is placed in the scroll back buffer
and WAS is disabled until at some later time WAS is
run with the "+" switch.

WAS L43 b20 A 20 EMS page buffer is assigned, and it is expected
that no more than 43 lines will be displayed during
this session. The command summary is placed at the
top of the scroll back buffer.


Several command keys apply to the operation of WAS

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*IMPORTANT NOTICE*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

The *ONLY* time that WAS takes notice of keypress commands
is after it has placed the system the hold state
caused by pressing the Scroll Lock key!!!!!!


When the Scroll Lock state is active WAS freezes the computer and sits in a
holding loop waiting for keypresses that express commands to WAS. When it
freezes the system it also hides the cursor. WAS unfreezes the computer when
you press the Scroll Lock key again, thereby resetting the Scroll Lock state
and restoring the cursor to view. Other memory resident programs can pop up
over WAS. Some, such as Turbo Lighting, will refuse to perform their tasks
when WAS has locked the computer via the Scroll Lock key. Technically, any
TSR that traps int 9 should be able to pop up over WAS in the hold state. No
response will be made to any command keys when the display is in a graphics
mode, nor will WAS do any capture of scrolled lines. It will, however, freeze
the system in a manner similar to pressing the Pause key (same as the Ctrl-Num
Lock keypress on non-enhanced keyboards) when the Scroll Lock key is pressed
even in graphics modes. The WAS hold routine is probably safer than Pause
because WAS will not interfere with an interrupt-driven thread. Following are
descriptions of actions taken by WAS when the corresponding keys are pressed.

Scroll Lock Scroll Lock not only causes WAS to place the machine
on hold, but when pressed again will cause the hold
state to be removed. See also the ESCape key

UP ARROW and DOWN ARROW These keys allow the re-display of lines that have
scrolled off the top of the screen. Pressing UP
ARROW scrolls the screen down placing scrolled off
lines one at a time on the top line of the screen
while moving all others down. DOWN ARROW performs
the reverse action by scrolling the screen up and
replacing lines that have been removed from the
bottom line when UP ARROW was pressed.

PgUp and PgDn They work like the UP ARROW and DOWN ARROW keys
respectively, only they scroll the screen by the
full amount (the entire number of lines on the
screen) for each keypress.

HOME and END HOME places the first screen of WAS's scroll buffer
on the display and END will display the current
application or DOS screen (i.e., no scrolled-off
lines are displayed).

INSERT Some application programs write to the screen
directly and perform screen scrolling by themselves
(instead of using the computer's built-in video BIOS
scroll routines). WAS will not capture the lines
scrolled off the top of the screen by these
programs; however, if the screen being displayed is
the application or DOS screen (displayed by pressing
the END key) i.e., nothing is displayed from the WAS
scroll buffer, you can press the INSERT key and WAS
will capture the current screen in its buffer.

Many applications exist that allow the user to make
a choice between rapid screen updates and the slower
updates available through the video BIOS. If you
find that WAS is not capturing the scrolled lines of
a program like this, then the choice of slower
scrolling (often implemented to prevent snow on some
CGA monitors) may allow the program's scrolled lines
to be captured by WAS.

BACKSPACE It may be desired at times to disable the scroll
capture of WAS. You may do that by pressing the
BACKSPACE key. The BACKSPACE key also turns scroll
capture back on. However, the INSERT key will still
operate the same way even with scroll capture
disabled. Should you have forgotten whether capture
is on or off you can press the Alt key and WAS will
flash the capital letter "Y" in the upper left
corner of the screen if capture is on, otherwise a
capital "N" will flash. When you let up on the Alt
key this signal will be extinguished.

ESCape The Esc key when enabled with the "e" installation
option switch will cause the machine to exit a WAS
hold state produced by pressing Scroll Lock. I.e.,
either Scroll Lock or Esc will remove a WAS hold.

KEYPAD PLUS and MINUS This covers the basic operation of WAS. Another
feature of the program allows you to take text from
the scroll back buffer (or even the current screen)
and feed it to the keyboard buffer. That is, the
text that you delineate with WAS will be given to
the running application or DOS just as if you had
typed it in yourself. The first thing you must do
to feed the keyboard buffer from text in the scroll
back buffer is to mark it by pressing the KEYPAD
PLUS key. The KEYPAD PLUS key marks text while the
KEYPAD MINUS key unmarks it. A marked area may be
moved up or down in the display by first pressing a
shift key and then either the UP ARROW or DOWN ARROW
key. The marked area can be resized horizontally by
holding down a shift key and then pressing either
controls resizing of the left side of the marked
area and the RIGHT SHIFT key controls resizing of
the right side. Press down a shift key then either
LEFT or RIGHT ARROW. After marking the text merely
press the Scroll Lock key to unfreeze the computer
and the marked text will be feed to the application
or DOS. Trailing spaces following a line of text
will not be feed to the keyboard buffer. Multiple
lines of text are marked by pressing the PLUS key
multiple times.

If you have marked a large section of text and feed
it to the keyboard buffer and then later decide you
made a mistake so now you want to stop the avalanche
of key feed; don't panic--just press Scroll Lock and
the feed will stop.

DEL You can delete text in the scroll back buffer. All
that is necessary is to mark one or more lines as
indicated above and then press the DELETE key. The
text will remain marked (nothing will happen) if you
mark any of the current (last, bottom) screen. No
warning will sound to indicate that you cannot
delete portions of the current screen.

Enter and Asterisk It may occasionally be useful to select a location
in the scroll buffer that you would like to return
to later. You do that by pressing the RETURN
(Enter) key to specify the current location as a
place to "return". When a location has been
selected this way, you return to that place by
pressing the asterisk (*) key. (Either asterisk
next to the keypad or shift-8 will do.)

Files of Version 0.62

SPCPAK C 2768 10-14-90 1:45p
SPCPAK EXE 9023 10-14-90 1:45p
SUMMARY 062 10880 10-14-90 1:45p
W-DOC062 SUM 4315 10-14-90 1:45p
WAS COM 10731 10-14-90 1:45p
WAS062 DOC 23379 10-14-90 1:45p
WAS062 ASM 119912 10-14-90 1:45p

(Note: Version 0.61 is being distributed with only the COM and
DOC files. It is otherwise identical to this version.)

Copyright Provisions

The provisions of the copyright of WAS are that the program, source code, and
documentation contained in the author's original release (for any particular
version) may not be altered in any way when distributed and all files
contained in the author's release must be included in every distributed
version. Alterations of the program and/or documentation--including possible
additional documentation, data files and code--may be included with
distributed versions of WAS. There are no other restrictions on the use
modification, or sale of the WAS software.

The author may be reached either via CompuServe Mail (User ID 72210,17), the
US mail or telephone. All comments and criticisms are appreciated.

Charles Lazo III
P.O. Box 452
Hohenwald, TN 38462
Phone: 615/796-2640

Thanks are due to Russ Ranshaw "Wizard of 10" (CIS User ID 70000,1010) for the
suggestion of the term "Gratisware" to describe copyrighted software that may
be freely distributed. The term "Freeware" has been used to describe software
of this kind (and other kinds as well); however, "Freeware" belongs to its
respective copyright holder and should not be used by other individuals or
organizations to denote software just as readily called Gratisware.

Thanx Russ

 December 23, 2017  Add comments

Leave a Reply