home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Black Box 4
/
BlackBox.cdr
/
editors
/
v-210.arj
/
VIEW.DOC
next >
Wrap
Text File
|
1992-05-01
|
22KB
|
434 lines
┌────────────────────────────┐
│ VIEW.EXE │
╞════════════════════════════╡
│ Programmed by Jim Wilson │
│Copyright(C) 90-92 * Ver 2.1│
└────────────────────────────┘
Stop, hold the presses! Major story breaking - View has been
rewritten! Yep, it's true. This little file viewer has had almost a
complete rewrite, all for the sake of speed and increased
functionality. I've added lots of features and enhanced it's value
tremendously (at least I think so). For example; there is no longer a
64K file size limit - you can load files that are equal in size to
your available RAM (minus what View itself needs, of course). There
is no longer an 80 character per line restriction - you can read
lines up to 250 characters wide. Loading files from disk is also
about 200% faster! For those of you still using versions 1.0, 1.1,
and 1.11 you might not notice the changes immediately because the
program appears the same - but you will, trust me.
If all this sounds kind of dramatic for such a little program then
maybe I let my enthusiasm get the best of me. You see, I've spent a
great deal of time enhancing View, so read on and find out what I'm
talking about.
┌──────────────────────┐
│ GENERAL INFORMATION │
└──────────────────────┘
View is a text and ASCII file viewer. You can use View to read just
about any BAT, DOC, TXT, or Read.Me type of file. It allows you to
read a file with up to 15,000 lines, or as many as will fit into
your RAM. Each line can contain up to 250 characters. What's so
special about that? I'm glad you asked!
There are a million text file viewers floating around. Hell, you may
have even written one yourself. I've written three or four different,
but somewhat specialized, viewers over the years. If you have spent
more than 2 seconds with any ShareWare or Public Domain software you
know that the manual is usually a DOC file included on the diskette,
just like this one. There is almost always a Read.Me file with last
minute changes that didn't make the manual on time (most commercial
software even contains one). Some of these files can grow quite large
(I saw a ShareWare programmer's editor that had a DOC file that was
357K - too big to be loaded by the editor it came with!).
Your only available choices for reading files of this type have been
either a file viewer that could only read one 64K block of text at a
time (one memory segment, which View use to be), one that tried to
read the entire file into RAM (which meant you usually had a viewer
with a big EXE file or one that took a lot of RAM itself), your word
processor (what a lousy choice that is), or your text editor. If your
file was real big most viewers or word processors would not be able
to load the entire thing so they wouldn't load ANY of it. If your
lucky the text editor you use is able to "unload" the text that can't
fit in memory onto your hard drive like the one I use - Bingo.
Now, just because you have about 550K of available RAM doesn't mean
that your viewer or editor could load a file that big - it needs
space to work in too. Enter View. With View you can read any ASCII
text file, even ones that are over 450K! And if the file is too large
for RAM View doesn't just say "sorry pal, it's too big for me so I'm
going to exit to DOS" (which a lot of programs do!), it will display
what it could read.
In short, Views combination of speed, features, and small size make
it the ideal choice for almost anybody. Because the EXE file is only
9,461 bytes you can carry it anywhere. And since all the major
movement commands are present (Arrows, PgUp, PgDn, Home, End, etc..)
you're not sacrificing features for portability or speed. This
program has been carefully crafted to use as little of your precious
RAM as possible, so there's more available for your file.
┌──────────────────────┐
│ PROGRAM INFORMATION │
└──────────────────────┘
View uses ONLY about 82K of RAM for itself. This means that you can
use it on virtually any PC. (If you don't have that much RAM
available your in the wrong business!) Essentially what this means is
that all the remaining conventional (base) memory in your system can
be used for file storage. For example; if, after having loaded all
your device drivers and TSR's you have 560K of RAM free (as reported
by chkdsk or some similar program), then you would be able to load
and read any ASCII text file up to almost 480K! Not too bad from an
EXE file of only 9,461 bytes!
View starts by verifying that the file you want to read exists. If it
does View then verifies that the file actually contains data (some
viewers will attempt to read a file with 0 bytes of data!). View then
checks to see that you have at least 85K of free RAM. If everything
is good up to this point View then loads itself into memory. Once
loaded, it proceeds to set up 15,000 5 byte pointers for the data
structure (each one will contain a line number and the string length
for the data it is about to read). After the pointers have been set
up View then starts reading until it reaches the end of the file,
runs out of RAM, or until it has read 15,000 lines (the 15,000 line
limit will be explained later).
Once the file has been loaded you can use the up, down, left, right,
ctrl-left and ctrl-right arrows, along with the PgUp, PgDn, Home, and
End keys to move around. If you hit a wrong key or if you hit a
"limit" (like hitting PgDn when your on the last page already) the
program gives a very gentle beep (not the annoying kind!).
I've spent a considerable amount of time fine tuning the RAM
requirements for View. The program itself would only require about 7K
to run if I didn't have to use 15,000 pointers. However, without the
pointers the program wouldn't serve an purpose! With all the
"tweaking" that was done I probably gave View the ability to read a
file that was 25K - 30K bigger then when I first wrote the new memory
scheme. That may not seem like a lot in todays world of
multi-megabyte systems, but when you only have 640K of RAM for DOS
all of the sudden 30K seems like a lot. Even with that I was able to
give the program a few extra features like a status line at the
bottom of the screen which contains the name of the file you're
viewing, the current line number, the last line number in the file,
and the right column position. I've also incorporated direct video
writes (which required a procedure to determine what type of monitor
you have), pretty good error checking, a goto line number feature,
and even a brightness control for laptops or PC's with crappy
contrast (does your present file viewer have a brightness control as
a feature?).
┌────────────┐
│ RAM USAGE │
└────────────┘
OK, enough of the propaganda, now let's get serious. The RAM that
View uses is broken down as follows:
75K - 15,000 5 byte data pointers.
3K - Error checking and all status information
4K - Video writes, keyboard routines, associated "housekeeping"
=====
82K - Total RAM used by View.Exe (approximately)
Not too bad, huh? The EXE file is only 9,461 bytes, which is 539
bytes less then my maximum target of 10,000. It will work with ANY
type of monitor, be it monochrome, CGA, EGA, VGA, LCD, Gas Plasma, or
whatever you happen to have. (As a matter of fact, the procedure
which attempts to determine what type of monitor you have is so
accurate that you will probably never have to use the /M command line
option, which is discussed a little later in this document). The
video writes and the keyboard handler were written in assembler for
the fastest possible performance on any computer.
┌────────────────┐
│ KEYBOARD USAGE │
└────────────────┘
The keys that View uses are all pretty self-explanatory (hell, if you
made it this far in the documentation you figured out how to use most
of them already). Here's a listing of them, anyway.
LeftArrow - Moves the data on the screen 5 columns to the left
RightArrow - Moves the data on the screen 5 columns to the right
UpArrow - Moves back to the previous line of data
DownArrow - Moves down to the next line of data
PgUp - Moves back to the previous 24 lines of data (1 page)
PgDn - Moves down to the next 24 lines of data (1 page)
Home - Goes to the first line of the file
End - Goes to the last line of the file
CtrlLeft - Moves the data 40 columns to the left
CtrlRight - Moves the data 40 columns to the right
B or b - Toggle: turns the brightness of the data up or down
G or g - Goto a specific line number
ESC - Exits View
NOTE: When using the 'G'oto function the line number you specified
will be placed directly above the status line. If you select a number
less then 24 then View will display the first page of data from the
file. If you specify an invalid line number then View will just beep.
If you decide that the number you entered is not correct you can hit
the BACKSPACE key to erase it. If you decide against using this
function at all you can hit the ESC key to cancel.
Another bit of information that might make you understand the status
line a little better; the Col:## is the right most column currently
being viewed while the Line:## is the last line displayed on the
screen. This makes the numbers you see always the extremes - the last
line and the last column of that particular screen.
┌─────────────────┐
│ PROGRAM OPTIONS │
└─────────────────┘
View supports only three command line options, which are:
/? or /H - A small help screen
/M - Forced monochrome mode
Filename.Ext - Name of the file to view
Options can be entered in any order and you can use either upper or
lower case letters, but you must leave a space between each option
selected. All unrecognized commands are ignored. One option causes an
immediate response - /? (or /H). This instructs View to print the
help screen and then return to DOS. This option will be acted upon
REGARDLESS of where it's placed on the command line. If you don't
specify a file name you will get the help screen to remind you what
to do. The definition of the available options is:
/? or /H - Use this option to get a help screen that looks similar to
the one above. If no file name is given on the command line
then View will print this Help screen as a reminder.
/M - By default View displays white text on a blue background. On
most systems this doesn't present a problem. However, on
certain laptops, portables, and monochrome EGA or VGA
monitors this can be difficult to read. Use this option to
instruct View to display white characters on a black
background. The 'B'rightness command will recognize your
selected color choice and will work accordingly.
Filename - The name of the file you would like to view. Drive letters
and paths are fully supported.
┌─────────────────┐
│ VERSION HISTORY │
└─────────────────┘
1.0 - Initial release to the general public. Only used by myself
6/91 prior to that.
1.1 - Added the /I option to ignore blank lines. Added the /S option
8/91 to check the file size in lines. Fixed a bug with the error
checking routine. Fixed a bug when you had a file with less than
24 lines (1 full page) of text. Fixed a bug with the monitor
checking procedure.
1.11- Fixed a bug with file names that started with a number, like
10/91 4DOS.DOC. View mistook that for a 'start at line number'
command (similar to the /##### option).
2.0 - Major rewrite! Removed the /##### (start at line number), /I
3/92 (ignore blank lines), and the /S (show size of file) options
because they are no longer necessary (they existed strictly to
make the 64K file size limit a little more bearable). Added
support for the left and right arrow keys, the 'B'rightness and
the 'G'oto line number functions as well as being able to load
files up to the maximum size of your free RAM. All this and the
EXE file is only 1.1K larger!
2.1 - Added the ctrl_left and ctrl_right arrow keys to scroll the
5/92 screen 40 columns to the left/right, respectively. Fixed a
memory allocation error where View was loading 1 line less then
it said it was if your file was either 15,000 lines long or it
used up all the RAM in your system before the end of the file.
Added some color to the display, for those of us with color
monitors. Fixed a bug with the 'G'oto command if the user
entered a number larger then the total number of lines in the
file. Performed some general "housekeeping" on the source code
for the sake of speed and/or size. All this and the EXE file is
now 148 bytes smaller than version 2.0! Yeah I know, 148 bytes
ain't much - but how many times have you seen a program updated
with new features and bug fixes that actually got smaller in
size?
┌──────────────────┐
│ FINAL RAMBLINGS │
└──────────────────┘
Some last words of wisdom (or at least as close as I can come).
As with all Public Domain programs I take no responsibility for View.
If it blows up in your face then it's your fault, not mine. It if
melts your hard drive, then so be it. If it makes you wish you were a
Vulcan (for all you Star Trek fans) then "live long and prosper".
Actually, I get pretty fed up with the legal crappola that's
necessary in todays world. Of course my program won't blow up in your
face or melt your hard drive - I'm being sarcastic and ridiculing the
legal establishment! I use View every day and I have yet to see a
Vulcan (prior to consuming larger quantities of Becks, that is).
View has a "big" brother called ReadIt. Yes, that's right - if you
like View but want something a little more powerful I can help you
out. You see, View is kinda like my "test bed" for new ideas. It's
also something I happen to give away for free because I'm a nice guy!
ReadIt is my ShareWare version, the one you have to pay for. Both
View and ReadIt share the same basic "engine" (file access, error
handling, keyboard reading, and video writes). ReadIt, however,
includes online help, text search (context sensitive or not), a file
information window, monochrome or color selection, and the ability to
print any part of the file. This is all wrapped up in an interface
featuring popup windows with shadows and an EXE file size of only
about 16K! If this sounds good to you then send just $10.00 dollars
to the address at the end of this DOC file, along with a letter
containing your name and address, and I'll rush a copy of ReadIt out
to you.
If you happen to be one of the few unfortunate souls who still have a
CGA monitor you had better be prepared for a "blizzard" of snow. View
writes directly to video RAM and I didn't program any routines to
perform the necessary synchronization for the video retrace signal.
On all other types of monitors there will be no problems.
View works exclusively in read only mode. What exactly does that
mean? Well, it means you can read ANY file, regardless of its
attributes (hidden, system, readonly) or its type (DOC, TXT, HLP,
etc). View doesn't create any temporary files for data storage nor
does it alter the original so you can use it without concern.
The 15,000 line limit you keep seeing mentioned in this document is
not because of me - it's because of Borland. For some reason they set
a limit on the size of a data structure you can create when your
allocating RAM from the heap. I don't know if Turbo C suffers from
the same restriction as Turbo Pascal, which View was written in. If
it were up to me I would only have a limit on the amount of RAM used,
not the size of the data structure.
From time to time you might see some strange symbols appear on the
screen. This is the way View prints the TAB (ASCII code 009),
FORMFEED (ASCII code 012), and a few other "difficult" characters.
Since there is no standard TAB size I didn't write a routine to
"expand" TAB's into spaces. Very few files are saved with TAB's
anyway, so this shouldn't be a problem.
The three areas I've concentrated on the most when writing View were
file reading, video writes, and memory allocation. These three
functions were tweaked and tweaked till they screamed. Consequently,
they are the areas that work the fastest and consume the least amount
of memory (as it should be).
┌──────────────┐
│ WHAT'S NEXT? │
└──────────────┘
What's next for View? Well, I'm not really sure. My main objective is
to keep the program small and fast - that design goal will never
change. However, I'm not going to ignore a good suggestion for an
enhancement if you've got one. Want a neat new feature added? Then
drop me a line at the address below and I'll check into it. Some of
the things I'm contemplating are: a search or find function, a
"bookmark" or place holder to mark a spot in a file so you can easily
jump back to it later, the ability to use EMS or XMS memory, and
maybe the ability to expand TABS into spaces (for the few files that
actually saved with TABS and not spaces).
┌──────────────┐
│ REGISTRATION │
└──────────────┘
Why is this part of View.Doc last? Because it's the least important,
that's why! I don't believe in a lot of legal rhetoric.
VIEW IS A PUBLIC DOMAIN PROGRAM. YOU ARE FREE TO USE IT FOR YOUR OWN
*PERSONAL* USE. YOU ARE ENCOURAGED TO GIVE IT AWAY TO ANYONE AND
EVERYONE WHO WANTS IT (except as noted below).
The only real restrictions I impose are:
1. Whomever you give this program to, whether you copy it onto a
diskette, a hard drive, or you upload it to a BBS, *MUST* be given
the complete set of files (at this writing they are View.Exe and
View.Doc).
2. None of the files (View.Exe or View.Doc) may be altered in any
fashion and must remain in their ORIGINAL form. NO EXCEPTIONS!
3. You CANNOT, under ANY circumstance, use this program in a
commercial, retail, promotional, or other similar fashion without
the expressed written consent of the author.
4. You CANNOT, under ANY circumstance, use this program to make a
profit. This includes distributing it with your own software,
selling it, "renting" it, or any other such arrangement that you
obtain reimbursement for.
If you do desire to distribute View with your ShareWare catalog, your
commercial software, or for any other non-personal endeavor, please
write to me at the address below. I would be more then happy to
license View to just about anybody. Remember, it's entirely free for
personal use!
If you would like to be kept abreast of any new developments
concerning View then send me a buck (one thin dollar!) and I'll add
your name to the mailing list. Make sure you tell me what version
your using. If you would like me to automatically send you the next
version then send me five bucks. Even if you don't send a buck (you
cheap skate) feel free to drop me a note and let me know what you
think about View, especially if you've found a bug (God forbid!).
╓────────────────────────╖
║ Jim Wilson ║
║ 9 Miller Ave ║
║ Washington, NJ 07882 ║
╙────────────────────────╜