# Category : Printer + Display Graphics

Archive : GRAPHIT2.ZIP

Filename : GRAPHIT.DOC

=======================================================================

GGGG h IIIIIII t !

G G h I tttttt !!!

G h I t !!!

G GGGG r rrr aaaaa ppppp h hhh I t !!!

G G rr r a a p p hh h I t !

G G r a aa p p h h I t t

GGGG r aaa a ppppp h h IIIIIII ttt !

p

p

=======================================================================

GraphIt!

Version 2.00 wed 22 Aug 1990

by Keith Hertzer

Copyright (C) 1990 kSoft, Inc.

System Requirements:

--------------------

IBM PC, XT, AT, PS/2 or compatible equipped with CGA, EGA, MCGA, or

VGA graphics, at least 256kb of RAM, and a 360k, 1.2M, 720k, or 1.44M

diskette drive or hard disk, running MS-DOS version 2.0 or higher.

GraphIt! also supports Microsoft and compatible mice. If your mouse

driver is installed at boot-up, GraphIt! will automatically detect and

make use of your mouse. See Section I for details on "mouse strokes."

Note: Please do not edit GRAPHIT1.HLP, GRAPHIT2.HLP, or

GRAPHIT3.HLP. They are formatted especially for use under the GraphIt!

help view function, broken up into screens of 23 lines. Altering these

files may result in abnormal page breaks and prevent effective use of

the help text. These files are a subset of the information contained

in GRAPHIT.DOC, so if you want printed documentation, you need not

make a hard copy of the .HLP files.

Contents:

---------

Section I: Using GraphIt!............................................2

Section II: Using the Graph function.................................4

Section III: Using AutoRedraw and the Redraw Queue...................8

Section IV: Viewing and Setting Formatting Options..................10

Appendix A: GraphIt!'s Command Line Arguments.......................13

Appendix B: Upgrade Notes: Changes from 1.41........................15

Appendix C: Using GraphIt! with Windows 3.0.........................16

Appendix D: Shareware / Order Form..................................17

Section ==================

III | Using GraphIt! |

I ==================

I

I

IIIo 2

----------------------------------------------------------------------

MENUS

GraphIt! is driven completely through pull-down menus, which

operate in a pretty standard manner. A fuller explanation of the

highlighted option appears on the bottom line of the screen. Highlight

the option you want by using the left and right cursor keys. Select

the highlighted option in the top bar by pressing enter.

The Help, Redraw, and Options items each call up a secondary pull-

down menu. Highlight the item you want using the up and down cursor

keys. Select the highlighted item by pressing enter again. To cancel

the menu and return to the top bar, press escape.

If you usually keep Num Lock on or prefer to use function keys

instead of cursoring around, the function keys will select the options

in the current menu in the order they appear on the screen. (i.e. in

the main menu, F1 selects help, F2 Graph, etc., and F7 selects Exit.

In the Options menu, F1 would select Settings, F2 Scale, and so on.)

Function key labels are not provided on the options for aesthetic

reasons, but there are not many options to learn. If you use function

keys, you do NOT need to press enter to select that item. Function

keys greater than the number of items in the menu are ignored.

POP-UP PROMPTS and the GraphIt! EDITOR

Almost all data input in GraphIt! is done through pop-up "dialog

boxes" which appear roughly in the center of the screen. (The main

exception is the equation input, which takes place on the bottom line

so you can look at other graphs while you enter an equation.) The

input editor makes full use of the standard editing keys: Insert,

Delete, Backspace, Left and Right arrow keys, Home, and End. Escape

clears the entire field as in BASIC. A simulated graphics cursor

alternately flashes the character at the current position and the

underscore character (or a full block when you are inserting) so full

editing is possible.

Usually if you choose a function by mistake and it presents you a

pop-up prompt, pressing enter or ESC on the blank field will return

you to the menu as if you had never selected the option. However, to

abort using the range function to change the range of coordinates

displayed, you must press enter at all 4 prompts, and the current

range will be preserved, BUT the screen will clear.

I. Using GraphIt! 3

----------------------------------------------------------------------

USING A MOUSE

GraphIt! now has internal support for Microsoft (R) and compatible

mice. If a mouse driver is installed when you run GraphIt!, it will

automatically be detected and the usual mouse arrow will appear. To

use the mouse on the menus, you simply "point and click." However,

please be aware of the following idiosyncrasies of my mouse routines:

1. The left button, as usual, is always used to select an item or

emulate a keystroke. Whenever you see a prompt that says "Press

any key...", clicking the left button will have the same effect

as hitting a key.

2. The right button has the same effect as pressing the ESC key

whenever pressing ESC is a valid option. To get out of a

pulldown menu, you can click the right button.

3. When used with a mouse, the menus are technically drop-down, not

pull-down; you must release the mouse button before your choice

will be registered, so you can't push the button down, pull the

cursor around, and release the mouse button to select the item.

4. To get back to the main menu bar from a drop-down menu, you can

also click on the top bar. However, even if you click on a valid

menu item, your choice will not be registered--you will just be

returned to the top bar.

5. Whenever you are using GraphIt!'s input editor, the mouse can be

used to do two things: Pressing the right button, as usual,

causes the same effect as pressing the ESC key. You can also

position the cursor inside the edit field by clicking the left

button on the space you want to move to.

6. To use the mouse to scroll through a help file, click on the key

name (highlighted in red on the bottom line of the screen which

corresponds to the action you want to perform. In addition,

clicking the right mouse button corresponds to the escape key.

7. The mouse is not available during the actual graphing loop, to

prevent the pointer and the graph drawing routine from fighting

over the screen. To pause the graph, you must use the keyboard.

The mouse can be used to restart or cancel the graph at this

prompt though.

Important! ---> HARDWARE NOTE <--- Important!

If you have a CGA or possibly an EGA monitor, you may need to run

the DOS program GRAFTABL.COM (a small TSR that allows block graphics

characters to be printed in graphics modes) before successfully

running GraphIt!. The program seems to come only with DOS 3 and up but

it runs under any version. If you're not sure whether your adapter has

a graphics (>ASCII 127) character generator included, run GraphIt!

first. If you NEED to run GRAFTABL, there will be NO box characters

around the pulldown menus, none around the settings box, and the full

block insert cursor will not function. Otherwise, you're okay without

it. Since it's TSR, you need run it only once and then it's active

until you reboot.

Section ============================

III III | Using the Graph function |

I I ============================

I I

I I

III IIIo 4

----------------------------------------------------------------------

GraphIt! 2.00's overhauled equation parser will automatically

isolate the variable "y" wherever it is in the equation. It will now

also graph some relations, like circles ("x^2+y^2=36") and ellipses

("x^2/3 + y^2/4 = 20"), as well as hyperbolas, sideways parabolas

("x=y^2") and many other conic sections. (Consult a good Algebra II

textbook for help on their formulas, as I'm a little rusty.) The only

limitation for functions is that there must be one and only one

occurrence of the variable "y". GraphIt! cannot graph an equation

without a "y", like "x=4". It also cannot perform the factoring needed

to isolate the variable "y" when it occurs more than once (i.e.

"x=y^2+3y"). The relation graphing module (for graphs which may have

more than one y value for a given x value) works like this: if in

isolating the "y" in an equation GraphIt! finds an even power of it

(i.e. "y^2"), it makes two equations for that graph, one with the

positive and and one with the negative root. This method by no means

covers all possible relations, but it is adequate for the most common.

In fact, I haven't thought up an equation it can't graph yet.

OPERATORS

GraphIt! uses an operator set almost identical to BASIC's, with

several additions to make it more user-friendly. Almost all of the

math functions provided in the Microsoft C library have been made

available. The supported operators and functions are as follows:

Operator/Function Meaning

================= =============================================

+, -, *, / add, subtract, multiply, divide

^ exponentiation

{[( )]} parentheses: may be nested to any extent,

braces and brackets are provided for ease of

reading but the parser will NOT differentiate

between "{" and "(" and "[".

abs absolute value

acos, asin, atan arc cosine, arc sine, and arc tangent

cos, cosh cosine and hyperbolic cosine

exp Euler's number to the specified power

int greatest integer ([x] is not supported)

ln, log natural logarithm, logarithm base 10

sin, sinh sine, hyperbolic sine

sqr square root

tan, tanh tangent, hyperbolic tangent

NOTE that all trig functions work in RADIANS, not degrees.

Besides the variables x and y, 2 other "variables" (pi

[3.14159...] and e [Euler's number: 2.718...]) are legal identifiers

for your convenience.

II. Using the Graph function 5

----------------------------------------------------------------------

CALLING FUNCTIONS

The parser's ability to determine exactly what you want to pass as

an argument to a function is somewhat limited, so I suggest you make

it a habit to enclose the desired expression in parentheses. "cos x"

may work fine but "cos 2x" is interpreted as "(cos 2)*x" and "cos x^2"

turns out "(cos x)^2". Typing "cos (2x)" or "cos (x^2)" instead works

perfectly.

The order of operations is the standard algebraic left to right of:

Functions

Parentheses

Exponents

Multiplication and division

Addition and subtraction

GraphIt! supports implied multiplication of variables and

constants as in "3x" or "5(2x+3)", but not of variables and other

alphabetic identifiers such as functions and built-in transcendental

numbers like "xx", "xcos(x)", or "xpi", so you must include the times

sign in those cases. (Implied multiplication of the two variables x

and y [i.e. "xy=1"] IS supported, however.) The parser may reject some

complex expressions for no apparent reason. Keep trying! I suggest

liberal use of parentheses: if you are not sure whether something will

be interpreted correctly, go back and put parentheses around it. (One

exception: do NOT enclose the entire expression on either side of the

equals sign in parentheses.)

GRAPHING THE EQUATION

To interrupt a graph when the computer is in the process of

drawing it, hit any key and the program will display on the bottom

line the message:

"PAUSE at x=#, y=#. Press ESC to quit, any other key to restart.. "

where # indicates the x and y coordinates you stopped it at. If you

mistyped the equation and want to fix it, just press ESC.

Be patient! GraphIt! may need a while to produce a quality graph

on a slower machine. To speed up the graphing, you may want to select

a lower Fineness value.

THE GRAPHING LOOP

When the graph for your equation is complete, you will again be

given the "Graph?" prompt at the bottom of the screen. If you'd like

to start all over with a completely different equation, press ESC and

the input field will clear. If you'd rather modify the last equation,

go right ahead; it's already stored safe and sound in the redraw queue

(for more information see Section III: Using AutoRedraw and the Redraw

Queue). To exit the otherwise infinite graphing loop, press enter or

escape on a blank line (escape twice will always work).

II. Using the Graph function 6

----------------------------------------------------------------------

PRINTING PICTURES OF YOUR GRAPHS

In order to be able to print pictures of your graphs, you must

have loaded GRAPHICS.COM, a standard MS-DOS program, into memory, and

you must have an IBM, Epson, or compatible dot-matrix graphics capable

printer. Select the Print function from the menu and all graphs on the

screen will be printed on the printer, in a sideways format. Probably,

the right edge of the paper will correspond to the top of the screen.

For CGA screens, the Print function does little more than invoke the

computer's built-in print-screen function (all it does is remove the

menu and help printing on the top and bottom lines of the screen).

However, for EGA and VGA multicolor screens, pressing Shift-PrtSc

yields very confusing output as GRAPHICS tries to match on-screen

colors to the printer's gray-scale equivalents and fails. In this

case, the Print function also remaps the colors to yield bright white

graphs on a black background for better black graphs on white contrast

in the output. Once the printing is finished, the colors are reset to

normal. If you have a color printer that produces legible output from

a printscreen, you may want to just press Shift-PrtSc instead of using

the print option.

ERROR MESSAGES

Eleven error messages may be encountered when graphing (apart from

messages ingrained in the library functions which I cannot control).

Five of them are fatal; the equation cannot be graphed and you must

edit it. They will cause the computer to beep so you know there is a

problem. The other six apply only to specific point(s) for which a y-

value cannot be generated. They will not appear unless you ask for

them using the Warnings option and then they appear silently.

"Found bad operation or mismatched parentheses. Press any key to

retype..."

You either left out a paren somewhere, left out one or both of the

operands for a binary operation or the argument for a function, or

typed some other weird thing the parser and evaluator couldn't

digest, like putting parentheses around the entire expression.

Examine your equation carefully and fix whatever seems to be the

problem.

"Found unknown identifier. Press any key to retype equation."

Unfortunately, the evaluator isn't set up to return what caused

the error, so you'll have to look for it yourself. Check that your

equation contains only valid identifiers (x, y, pi, e, and the

functions listed above) and that you separated each of them with

an operator, space, or some other punctuation.

"No equals sign or more than one found. Press any key to edit

equation."

To be a valid and graphable, your equation must include exactly

one equals sign ['=']. If you get this error, you either left out

the '=' or accidentally typed two or more of them.

II. Using the Graph function 7

----------------------------------------------------------------------

ERROR MESSAGES continued

"No 'y' variable or more than one found. Press any key to edit

equation."

Although GraphIt! has been enhanced to isolate ONE 'y' variable

and graph some relations, it cannot graph an equation without a

'y', like "x=4". It also cannot perform the factoring needed to

isolate the variable 'y' when it occurs more than once (i.e.

"x=y^2+3y"). If you can adjust the equation so it uses only one

'y', do so; otherwise it can't be graphed.

"Can't find the inverse of this function of y. Press a key to edit

equation."

You tried to graph an equation like "int(y)=x" or "abs(y)=x" for

which y cannot be isolated by taking the inverse of the function.

The functions which cannot be isolated are "abs", "cosh", "sinh",

"tanh", and "int". If you can't adjust the equation so this error

does not occur, it is not graphable.

WARNING ERROR MESSAGES

"Overflow at x=#.##."

Some function or operation generated a number too large to fit

into a 8-byte floating point variable. The point at x=#.## was not

graphed. This error is not fatal, so the graphing process is

continued, but if the message is repeated and no image is graphed,

you may need to abort graphing and look at your equation again.

"Division by zero at x=#.##."

At x=#.## your equation included division by zero so that point

was skipped. Unless you get this error repeatedly, there's no real

problem.

"Can't raise a negative number to a fractional power. [x=#.##]"

Due to the possibility of getting an even root of a negative

number (like -16^(1/2) which actually equals the square root of

-16), the C Library pow() function refuses to process any

arguments like these. This is not a fatal error, and the portion

of your graph (if any) where the base is not negative or the power

is not fractional should be graphed perfectly. This error also

occurs when you try to take the square root of a negative number

with the "sqr" function.

"Can't find the logarithm of a negative number. [x=#.##]"

The natural logarithm (ln) and base 10 logarithm (log) functions

are defined only on x greater than zero.

"Domain error: asin/acos functions defined only on -1<=x<=1. [x=#.##]"

The arcsine (asin) and arc cosine (acos) functions are only

defined between -1 and 1 (the range of the sin and cos functions).

Section =========================================

III III III | Using AutoRedraw and the Redraw Queue |

I I I =========================================

I I I

I I I

III III IIIo 8

----------------------------------------------------------------------

USING AutoRedraw

Whenever you change the scale to look at a graph in greater detail

or from farther back, or you shift the range of the axes so that the

graph you just drew will be centered, the screen must be cleared so

that a new coordinate grid can be drawn. So you're left with the

viewing angle you wanted for that graph, but the screen is blank. You

shouldn't have to solve this problem by retyping the whole equation

again...and you don't. You can redraw the equation much more easily by

selecting "Last graph" in the "Redraw" menu. But with AutoRedraw ON,

you don't even have to do that.

As its name suggests, AutoRedraw will redraw the last equation you

typed in automatically when you change the scale or range. If you

don't want a graph redrawn, you can abort it by pressing ESC twice and

you will be returned to the menu. If you want to turn off AutoRedraw

completely (say you'd rather redraw all of the equations in the redraw

queue instead of just the last one...with AutoRedraw on you'd have to

wait for the last equation to be graphed twice, once by each

function), just select "AutoToggle" under the "Redraw" menu and answer

"n" when asked if you want AutoRedraw on.

AutoRedraw is ON by default. You can change the default to OFF by

using the "/A" command line option (see Appendix A for a full

explanation of the command line arguments).

THE REDRAW QUEUE

Every time you type in an equation, the character string you typed

and the program's internal representation of that equation get stored

in the redraw queue. From this queue, or list, you can call up any of

the last 20 equations you typed to graph again with fewer keystrokes

than retyping it. Or you can redraw all of them or the just the last

one you typed with even fewer keystrokes. The equations in the queue

are stored in an order that puts the most-recently-used at the

beginning and the least-recently-used at the end. Hopefully, when the

queue fills up, the equations that are bumped off the queue at the end

will be the ones you won't miss very much.

As explained in the previous sub-section, the screen clears

whenever you execute Range or a successful Scale (if you abort Scale

the screen remains as it was). If you execute either of these

functions or clear the screen accidentally with the Clear menu option,

you can redraw the last equation (if AutoRedraw hasn't already) by

selecting "Last graph" under "Redraw", or you can redraw all of the

equations in the queue using "Redraw All" under the "Redraw" menu.

Note that the redraw function does not keep track of which graphs are

on the screen at any point in time so "redrawing all" may put more (if

you plotted many equations on the screen before the last one) or fewer

(if you cleared the queue) equations on the screen than there were

before the screen was cleared.

III. Using AutoRedraw and the Redraw Queue 9

----------------------------------------------------------------------

The "Pick graph" option in the Redraw menu allows you to graph any

of the equations currently in the redraw queue. Because of the

enormity of the buffer that would be required to "remember" what was

on the screen "behind" a list of all the equations in the queue so the

images there could be preserved in EGA and VGA modes, the equation-

viewing is limited to one at a time in a pop-up box. If you would like

to redraw the one shown, press enter. Or, if you have a mouse, click

the left button on the equation itself. If you want to look at more,

press any other key except Escape (or click on any point on the screen

outside of the box with the equation in it). When you have looked at

all of the equations in the queue, it recycles to the first equation

again. If the equations start looking familiar, you've probably

reached the beginning again. If you decide you don't want to redraw

any of the equations presented for your perusal, press Escape (or

click the right mouse button) and the command will be ignored. When

you pick a graph, it is re-inserted at the top of the redraw queue, as

you'll likely be working with it again in the future. So if you scale

the grid again, that graph will be Auto-Redrawn, and if you redraw the

last graph, that graph will be shown.

Section ==========================================

III VVV VVV | Viewing and Setting Formatting Options |

I V V ==========================================

I V V

I V V

III V o 10

----------------------------------------------------------------------

THE DEFAULT SETTINGS

When you run GraphIt! without any command-line arguments, the

following settings are in effect:

Start of range: (-12.0, -8.14*)

End of range: (12.0, 8.14*)

Fineness: 1.0 **

Step rate: 0.0625 (1/16)

Legends: ON

Warnings: OFF

Printer: OFF

AutoRedraw: ON

This provides a basic rectangular grid of decent size with the origin

centered, a square aspect ratio (a 1x1 square on the grid really LOOKS

square), and a good resolution graph.

* on VGA + or - 8.48 because 30 text rows allow 93% of the vertical

pixels to be used for graph while CGA/EGA 25 rows allow only 92%.

VIEWING THE SETTINGS

The current settings are almost always displayed whenever you

change one of them. Every item under Options (unless aborted) will

bring up the settings screen. You can also look at them manually by

selecting Settings in the Options menu.

CHANGING THE SCALE

The scale function allows you to change the scale of the graph you

have on-screen while keeping the center of the display the same (the

origin may move but if (2,2) is at the middle of the screen, it will

stay there). The scale is totally relative to the size of the grid

that is presently on the screen, so you need not make any comparison

with an absolute scale of 1. To rescale the grid, select "Scale" from

the options menu. Then respond to the prompt according to the

following guidelines:

Enter a positive number to zoom in, or a negative number to pan

out. The number of units across the screen will be divided or

multiplied by that number accordingly. Numbers between -1 and 1,

inclusive, are invalid because they produce meaningless values.

Decimals greater than 1 or less than -1 are valid though.

If you enter an invalid number, you will be asked again to enter

the scale. To abort rescaling, just press enter on a blank line.

To scale the default range, use the "/S" option on the command

line.

IV. Viewing and Setting Formatting Options 11

----------------------------------------------------------------------

ADJUSTING THE RANGE

The ability to adjust the grid by inputting the beginning and end

of the desired range is one of the most powerful and flexible features

GraphIt! offers. It can rescale the grid to either be a perfect fit

for the function you are graphing so that as much of it is visible as

possible or to render the most accurate image possible on even the

lowest resolution CGA screen. Both of these features can be

accomplished by selecting Range in the Options menu.

To create a grid such as the first, graph an equation on the

standard grid, and from that graph determine the top-, bottom-, left-

and rightmost extremities of the graph, and respond with the proper

values to the 4 Range prompts. The new grid may be somewhat expanded

or compressed depending on the aspect ratio, but it will show the same

amount of graph in much greater detail.

To create a more accurate representation like the second grid,

have some idea in your mind as to the left, right, and top of the

grid. Enter these 3 numbers in the first 3 range prompts, and on the

fourth one just press enter. Voila. The bottom of the grid will be

AutoScaled to the exact y to x ratio needed to get a square aspect

ratio...if it isn't, you'd better check the vertical size knob on your

monitor! To set the range from the command line, use the /X1:, /X2:,

/Y1:, /Y2:, and /Y2 options [described in Appendix A].

ADJUSTING THE FINENESS

The fineness factor determines how high the resolution of the

graph will be, and in effect, also the amount of time it takes to

complete the graph. The fineness factor of 1 is quite adequate in most

circumstances. With the addition of SmartFineness automatic fineness

adjustment to the line-drawing feature in the graph-drawing loop, the

manual fineness adjustment has become almost obsolete, but I left it

in to accomodate the need for especially sharp graphs or for

especially quick renderings. SmartFineness automatically decreases the

fineness when the point being graphed is not on the screen to speed up

blank areas, then recovers automatically and backtracks to the spot

where the graph comes on-screen again. It also varies the fineness

with the slope of the equation being graphed--less when the slope is

near-horizontal, greater when the slope tends toward vertical, so

steep graphs are tracked more effectively. As the fineness is

increased, more of the curve will be smoothed out, but remember that

if you increase the fineness factor to 5, the computer will be slowed

down to 1/5 its normal graphing speed under the load of all the extra

calculations. A factor greater than 10 can bring even the fastest 386

computer to a snail's pace.

If you have CGA adapter, GraphIt! assumes you are using an 8088

non-turbo PC and reduces the fineness to 0.5 to speed up graphing;

the difference in resolution is usually not very noticeable on the

CGA screen, but the difference in speed is.

To change the fineness factor, select Fineness from the Options

menu. Any value greater than zero is valid; however I would recommend

not going below 0.25, as the image quality suffers.

IV. Viewing and Setting Formatting Options 12

----------------------------------------------------------------------

PRINTING VALUES

This feature allows you to print out a table of coordinates as the

program is drawing your graph. This option is available to aid the

drawing of graphs manually (if you happen to be cheating on your

homework) and provide a reference for labeling the axes if you print

the graph (using the Print menu item described on page 4).

By default, the print tables option is OFF; most people don't

leave their printer on at all times and the process does slow graphing

a bit.

You can turn it on by selecting Printout in the Options menu and

responding "y" to the prompt. You can also use the "/P" command line

option to turn the printer ON by default.

WARNING MESSAGES

By default, the error messages which do not require the equation

to be retyped are suppressed, because they slow down the graphing

process, cover up the equation, and are somewhat annoying when you

know the graph shouldn't produce any values in some area. (Also, it

was easier than trying to add some method of specifying the domain for

each equation.) If something goes wrong (i.e. the graph doesn't show

up on screen when it should and the reason isn't readily apparent),

you can turn on the warning messages (using the "Warnings" function of

the "Options" menu) and redraw it to see what the problem is. You can

use the same menu option to turn the messages off later. The "/W"

command-line argument can be used to turn the messages ON by default.

AXES LEGENDS

GraphIt! 2.00 has been equipped with a routine that labels the

hatch marks across the graph so you can more easily locate points or

find the coordinates of a graphed point. In some cases, though,

especially when doing graphs near the axes in monochrome CGA mode, the

numbers can be confusing and you may want to turn them off. To do

this, select the "Legends" option in the "Options" menu and answer "n"

to the prompt "Do you want to label the grid axes?". The numbers

cannot be erased without clearing the screen, so if you want them gone

right away, you should clear the screen using the "Clear" option and

then redraw your graph. When turning the numbers back on, you also

must clear the screen before the command takes effect. The "/L"

command-line argument can be used to turn the legends OFF upon

startup.

Appendix =====================================

AAAA | GraphIt!'s Command Line Arguments |

A A =====================================

AAAAAA

A A

A Ao 13

----------------------------------------------------------------------

Nearly all of GraphIt!s options---covering almost every feature---

can be set upon startup of the program by the use of command line

arguments. All arguments are NOT case sensitive (i.e. "/P" is the same

as "/p"). Arguments must be separated by one or more spaces on the

command line. All arguments begin with the standard MS-DOS "switch"

character ("/"). UNIX-style switches (starting with "-") are NOT

supported. Unidentifiable command line arguments may cause the message

'Unknown argument "XXXXX" ignored. Press any key...' to be shown on

the bottom line of the screen.

-------------------------------- NOTE --------------------------------

Some command line options require a both a switch and a numeric

value. All of these options should be entered in the following format:

A>graphit /X:##.##

where X is the option switch, and ##.## denotes an integer or real

number. A decimal point is not required for integers. Note that there

must be NO space anywhere in the argument, as a space is assumed to

delimit separate arguments from each other. If you do not include the

number after the colon, 0 will be the result (This is usually not

desirable).

-------------------------------- NOTE --------------------------------

/P Turn printer ON

---------------------------

The point table printing function of GraphIt! is OFF by default.

Use the /P option to turn the printer ON immediately upon loading

the program.

/A Autoredraw OFF

---------------------------

The AutoRedraw function is ON by default. If you do not wish to

utilize this feature, use the /A option to turn AutoRedraw OFF.

/L Turn Legends OFF

---------------------------

The axes legends are ON by default. If you do not wish to utilize

this feature, use the /L option to turn the legends OFF.

/W Warning messages ON

---------------------------

The occasionally annoying warning messages are OFF by default. If

you want to be alerted when a point cannot be generated, use the

/W option to turn the messages ON.

/S:### Scale grid

---------------------------

If you would like to retain the original centered-around-the-

origin grid but would like to rescale it from the original 24 x 17

range, you can use the /S: option. The /S: option and the range

options should not be used at the same time, as this may cause

erratic results.

Appendix A: GraphIt!'s Command Line Arguments 14

----------------------------------------------------------------------

/F:### Set Fineness

---------------------------

The default fineness factor is 1.0---one value per pixel. If you

want to change the default to less than 1.0 for faster graphing or

to greater than 1.0 for higher-resolution curves, use the /F:

option. See the NOTE above for the required format.

RANGE OPTIONS

The 5 options below allow you to set the range from the command

line. If four of them (/X1:, /X2:, /Y1:, /Y2: _or_ /Y2) are not all

present, the defaults (+ or -12.0 on the x-scale, + or - 8.14 or 8.48

on the y-scale) will be assumed for the values left out. Note the

difference between the /Y2:### (set the bottom of the grid to ###) and

/Y2 (AutoScale bottom of grid for square aspect ration) options.

/X1:### Set LEFT of grid

-------------------------------

The left side of the grid will be set to the value of ###.

/Y1:### Set TOP of grid

-------------------------------

The top of the grid will become the point ### on the y-axis.

/X2:### Set RIGHT of grid

-------------------------------

The right side of the grid will be set to the value of ###.

/Y2:### Set BOTTOM of grid

-------------------------------

The top of the grid will become the point ### on the y-axis.

/Y2 AutoScale bottom of grid

-------------------------------

The bottom y-value will be scaled to fit the given x and y top

values for a square aspect ratio.

*** NOTE: This option must be AFTER any other range options on the

command-line or the grid will not be scaled properly.

/G:xxxxxx Graph Equation

-------------------------------

If you want to start up GraphIt! by automatically graphing one or

more equations, use the /G: option. The only limits on the number

of equations you can include on the command line are the capacity

of the redraw queue (20 equations) and, of course, the maximum

length of the command line (I think it's around 255 characters).

The equation(s) will be parsed and graphed in exactly the same way

as the regular prompted input, with one exception: You MAY NOT

include any spaces in the equation as they will be interpreted as

delimiters between arguments. Any other options on the command

line (range, scale, fineness, etc.) will be executed BEFORE the

equation is graphed. As the GraphIt! editor is far superior to the

DOS command line editor, this option has limited usefulness, but

it is a good interface for execution from a batch file.

Appendix ====================================

BBBB | Upgrade Notes: Changes from 1.41 |

B B ====================================

BBBB

B B

BBBB o 15

----------------------------------------------------------------------

GraphIt! 2.00 offers significantly more power and functionality

than its predecessor in an easier to use package. This is due to the

following major enhancements:

1. The parser has been revised to accept any equation with one equals

sign and one "y" variable and to isolate the "y" variable on one

side of the equation so the other side can be evaluated like a

regular expression in terms of "x". It also checks for even powers

of "y" and will set up to graph a "top" half and a "bottom" half

by taking both the positive and negative root when isolating "y".

This opens up a whole new class of functionality, but the only

change evident to the user is that the graphing prompt does not

provide the "y=" half of the equation.

2. The program now supports Microsoft mice. The mouse is active all

of the time except during the actual graphing to provide a quicker

way of selecting menu items and a feeling of better responsiveness

to the user.

3. The x- and y-axes are now labeled with the coordinates each cross-

hatch line represents, so you don't have to count to approximate

where a point is. The numbers are unobtrusive but you also have

the option of turning them off if they get in the way.

4. The expression evaluator contains 2 more error traps and

associated messages to prevent floating-point errors from leaking

through and being detected by Quick C's clumsy math run-time error

processor. The non-fatal messages are also suppressed by default,

with the option to turn them on if desired.

5. The graph-drawing loop benefits from the addition of the Smart-

Fineness automatic fineness adjustment, which working in

conjunction with the line-drawing feature makes manual fineness

adjustment almost obsolete. It automatically decreases the

fineness when the point being graphed is not on the screen to

speed up blank areas, then recovers automatically and backtracks

to the spot where it comes on-screen again. It also varies the

fineness with the slope of the equation being graphed--less when

the slope is near-horizontal, greater when the slope tends toward

vertical, so steep graphs are tracked more effectively.

6. The Print tables function, which performed disappointingly at best

in the last release, has been completely rewritten to work

effectively.

All of these major enhancements have been made at the cost of less

than 6000 extra bytes in the executable file, due to kSoft's

commitment to quality and excellence in all of its products. If you'd

like to support future versions with your comments and suggestions,

see Appendix D for the mail-in survey form.

Appendix ===================================

CCCC | Using GraphIt! with Windows 3.0 |

C ===================================

C

C

CCCC o 16

----------------------------------------------------------------------

NOTE: GraphIt! 2.00 does NOT run in Win 3's windowed environment, but

it should run perfectly as a full-screen DOS application.

This ZIP file contains 2 files to make it easier to use GraphIt!

from Microsoft Windows 3.0. They are GRAPHIT.PIF, its program

information file, and GRAPHIT.ICO, its very own icon. To use these

files, follow the instructions below.

1. Create a directory on your hard drive -- C:\GRAPHIT

[you can use a different directory if you want but in that case

you must change the two fields in GRAPHIT.PIF which have the

directory name in them.]

2. Copy all of the files in this ZIP file into that directory (see

READ.ME for a complete list).

3. Start up Windows if you weren't already using its File Manager to

do the steps above.

4. Open the group in Program Manager you want to put GraphIt! in.

Select "New..." from the "File" menu in Program Manager.

5. Select "Program Item" in the dialog box.

6. For Description, type "GraphIt!". For Command line, type

"C:\GRAPHIT\GRAPHIT.PIF".

7. Select the "Change Icon" button. At "Filename" in the dialog box,

type "C:\GRAPHIT\GRAPHIT.ICO".

8. Select "OK". You should now have a Windows-startable GraphIt!

Appendix ==========================

DDDD | Shareware / Order Form |

D D ==========================

D D

D D

DDDD o 17

----------------------------------------------------------------------

Shareware: Feel free to distribute copies of GraphIt! to your friends

AS LONG AS 1) you charge no fees for its use or distribution and 2)

you do not modify the program or documentation files in any way.

This program is to be taken AS IS with no warranties, express

or implied. There are several bugs I know of, most of which have to do

with error messages I cannot keep the library functions from printing,

but no serious bugs that could cause loss of data or even a system

crash. Please tell me about any bugs you find to be especially

bothersome that I should correct for the next release.

If, after using GraphIt!, you find that it is easy, helpful,

and convenient to use, please support the release of future versions

by filling out the registration form on the next page and sending your

contribution (payable to Keith Hertzer) to the address below:

kSoft, Inc.

345 Montecillo Dr.

Walnut Creek, CA 94595-2613

If you send $20 or more, you will be registered to receive a diskette

with the next version of GraphIt! when it becomes available, along

with promotional copies of other kSoft programs. For releases after

that, you will be informed that a new version is available and where

you can download it.

Even if you cannot send any money, please help me out by filling out

the response form below so I can get an idea of what I should add to

the next upgrade.

If you would like a copy of the source code for GraphIt! (compiled

under Microsoft QuickC version 2.0), please send me $20 and a short

note telling why you would like it.

------------------------kSoft REGISTRATION FORM-----------------------

Name__________________________ Phone # ________________________

Address ______________________________________________________________

City ____________________________ State _______ ZIP ____________

_

|_| Enclosed is my $20 or more contribution. Please register me to

receive the next upgrade to GraphIt!.

_

|_| Please send me the C source code to GraphIt! 2.00. I have

enclosed a short note on why I'd like it and a check for $20.

What size diskettes do you use? 5 1/4" 3 1/2"

The following questions are asked on a purely informational basis:

What hardware platform are you using to run GraphIt!? (circle one)

PC XT AT PS/2 (Model ____)

8088 clone '286 clone '386/486

What DOS version do you usually run with it?

PC-DOS / MS-DOS ____ . ____

What type of video card do you have? other (___________)

Monographics CGA EGA VGA

What features do you like best about GraphIt!?

______________________________________________________________________

______________________________________________________________________

What problems have you experienced with GraphIt!?

______________________________________________________________________

______________________________________________________________________

Any other comments or suggestions for improvement in the next upgrade?

(Your comments are vital so I will know what to change or add.)

______________________________________________________________________

Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/