home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HomeWare 14
/
HOMEWARE14.bin
/
tutor
/
pcl60b.arj
/
PART6.EXE
/
MEMORY.TUT
< prev
next >
Wrap
Text File
|
1993-07-13
|
34KB
|
652 lines
----------------------------------------------------------------
UNDERSTANDING AND MANAGING MEMORY
----------------------------------------------------------------
With so much information to absorb, a tutorial on the topic of
computer memory seems dry and uninviting. Computer novices and
advanced users alike might be tempted to sidestep the topic of
computer memory. After all, if you just want to USE the computer
to accomplish a task isn't it enough to know that data is stored
in either RAM (random access memory) integrated circuit chips or
on a disk drive and leave the troublesome details to the
computer? Hardly...
If you want to get serious about configuring your computer for
speed, be able to switch between several software programs
quickly, troubleshoot mysterious software problems or optimize
your computer for larger data processing tasks - learning to
manage memory is an ESSENTIAL survival skill. The tricks and
reference ideas presented in this tutorial make the difference
between a computer that simply does the job and a computer that
flies through piles of work. Later in this tutorial we will
present some unusual "power user" tips to manage computer memory
effectively. But first, let's step back, take a breath a pull
together a few basic concepts from previous tutorials.
Computer memory is divided into two types. Disk storage which is
long term storage. And RAM (random access memory) which is short
term storage. RAM is only active as long as power is supplied to
the computer. In a physical sense, RAM exists within small
integrated circuit "chips" housed within the computer.
A byte is simply computer-speak for a character of information
within a RAM chip memory area of the computer. Think of a byte
as a small filing cabinet drawer in a busy office. The letter
"A" occupies one byte of information. A kilobyte is roughly
1,000 bytes of information. Actually it is 1,024 bytes or the
number two multiplied to the eighth power since computers deal
in binary math. A kilobyte is actually a small amount of storage
space - perhaps a short business letter in size. A kilobyte can
be written as 1K. A megabyte is a million bytes - 1M written in
computer shorthand. These terms are frequently abbreviated as
kilo (or K), mega (or M) and giga (or G). You may also see KB
for kilobytes or MB or MEG for megabytes.
Some memory storage areas of the computer cannot be changed,
however. ROM or read only memory is also held in special
computer chips. These chips do not lose their information when
power is removed. ROM chips contain special startup instructions
used when the computer is first turned on as well as specific
instructions such as how to use the disk drives and computer
memory. ROM memory is fixed. RAM memory, however, is flexible
and can be configured to suit different needs.
To make things a little more interesting, RAM is available in
two "flavors". Dynamic RAM, sometimes abbreviated as DRAM which
is relatively inexpensive and is the most common type of memory
used in computers today. A second type, static RAM (or SRAM),
is similar to DRAM but much faster in operation. Static RAM is
usually configured for very fast "cache" memory which the
central processor uses for temporary storage when DRAM would
slow processing operations. Many computers do not contain SRAM
and for the most part this tutorial deals with the management of
dynamic RAM or DRAM; and this is where the majority of your data
and software resides when the computer is operational.
To make the next jump in understanding we need to draw a map.
Pay close attention, because understanding and managing this map of
computer memory is where the secrets and tricks to boosting
computer performance lie. We will dissect this map carefully in
the paragraphs which follow...
------ A map of RAM computer memory ------
Conventional Memory Upper Memory Extended Memory
0K 640K 1Meg
| ---------------------|--------------------|-------------------->
xxxx xxxxxxxxxxxxxxxxxx xxx xxx xxx xxx xxx xxx xxxxxxxxxxxxxxxxx
| | | | | | |
| | | | | | |
| | video | window for | extended memory (XMS)
hardware code, | | expanded | where software can
system data, | | memory (EMS) | be relocated
device drivers, | | |
memory resident | useful upper |
programs | memory blocks |
| or UMB high memory area
| (HMA), the first
free conventional 64K of extended
memory: for programs memory
Tip: we will be referring to this map frequently so you might
want a paper copy for frequent reference. Simply make sure the
map is fully on your screen, turn on your printer and tap the
Print-Screen key, sometimes abbreviated PrtSc or PrtScrn. If
that does not work, try pressing the shift key (and hold it
down) and then press the Print Screen key. Keep the map close by
as our tutorial unfolds!
The above map of RAM memory looks technical and complex, but is
actually quite simple. As we describe each section of the map,
flip back and take a glance to refresh your "visual"
understanding of this map. Once you understand this memory map
you can "rearrange" how the DRAM memory of your computer is used
for more effective, speedy computing!
The above map is analogous to a long wall of filing cabinet
drawers. Each drawer can contain a computer piece or byte of
information. Obviously, since we are dealing with millions of
bytes this is a VERY long wall of filing cabinet drawers! Each
filing cabinet has an address or location. The central processor
in the computer also uses an addressing scheme to locate
information in RAM memory. Note that the central processor in
the computer can either read information from RAM or write
information to RAM. RAM is somewhat like paper - it can store
information. And the central processor holds a pencil and eraser
so that it can read and write information as needed.
At the far left at 0K (zero thousand bytes of information) we
notice that the RAM memory "filing cabinet drawers" store
hardware code and system data including the MSDOS operating
system itself. Normally device drivers and memory resident
programs (TSR's) are stored in this area as well.
Moving to the right, next we see the free conventional memory
where software such as a spreadsheet or word processor is held.
This is the main memory area which concerns computer users and
it is this area which can and should be maximized for effective
computer use.
Moving further to the right we see an important boundary exists
at the memory location of 640K (640 kilobytes). It is here at
the DOS 640K boundary that DOS does not normally allow a program
to access further RAM memory. This is a design decision which
was made when the first IBM desktop computer was manufactured
and is based on the microprocessor selected at that time (8088
CPU) and considerations of where to place video and disk drive
memory access on those early machines. Although this 640K
boundary was not meant to be crossed by software, clever memory
management techniques will allow you to use RAM memory above the
640K barrier.
Moving further to the right along the map we see the upper
memory area which lies between 640K and 1 Meg. This memory is
unique in that it is normally used to address hardware devices
like your video monitor and disk controller which need a spot in
memory to do their work. However some of this upper memory area
can be reclaimed for other uses. One of the earlier schemes to
reclaim this area was an memory management scheme called
expanded memory sometimes abbreviated as EMS.
Finally, beyond the memory location at 1 Meg lies true extended
memory which can be used for a variety of fascinating purposes -
either actively by configuration of the user or passively by
software which will detect and use expanded memory. Extended
memory is abbreviated as XMS. Note that extended memory (XMS)
can be installed in large amounts. A computer can have 2 Megs of
memory, 4 Megs, 16 Megs and even more! The first 64K of extended
memory is called the high memory area, sometimes abbreviated as
HMA.
The secrets of memory management, then, lie outside or above the
conventional 640K of RAM memory. Although 640K of conventional
memory (640,000 bytes) sounds like a lot of RAM memory, today's
advanced software uses memory voraciously! Let's pause for a
moment and define the three specific types of memory seen above.
CONVENTIONAL MEMORY. The first 640K of RAM memory. Conventional
memory is used by applications software such as databases and
word processors. It is sometimes called DOS memory. You can
never have more than 640K of conventional memory due to the
design of the original IBM PC. All PC clones share this
conventional memory similarity. In order to use memory beyond
640K you need to use special memory management software which is
contained in later versions of DOS (versions 5.0 and 6.0) or a
commercial or shareware memory management software package.
Clever memory management can move some portions of DOS itself
and the operating system out of conventional memory where it
normally resided into upper or extended memory areas of RAM.
This frees more conventional memory for use. Likewise, memory
resident software programs and TSR's such as popup calendars,
notepads and calculators can be moved out of conventional memory
into upper or extended memory areas.
EXTENDED MEMORY. RAM memory which resides from the normal 1MB
DOS limit to the top address limit of the CPU (central
processing unit). This means to the top limit of the memory you
have installed in the machine - 8 Megs of memory, for example.
Using special software it is possible to convert extended memory
to expanded memory. Extended memory is useful for software tasks
like RAM disks, print buffers and other applications. Many
software applications such as databases and spreadsheets can use
extended memory for large tasks. Extended memory is also called
XMS memory.
EXPANDED MEMORY. RAM memory which can be accessed only through a
"window" or "page frame" set up inside the first 1 Megabyte of
RAM. The usual limit of expanded memory is 32MB. Segments of
this memory are quickly "paged in and out" of the memory window
to create an illusion to the central processing chip of a large
amount of memory - something like flipping the pages of a cartoon
book to animate a story. Many applications such as spreadsheets
and databases can use this memory to handle large tasks.
Expanded memory is also called EMS memory. This type of memory
is not commonly used today and was an early memory management
standard. However, some software still supports this system. If
you see references to LIM 3.0 or LIM 4.0 this is a clue that
expanded memory can be used. Remember, extended memory can be
converted to expanded memory using special software. Within DOS
versions 5.0 and 6.0 a special software utility can make
extended memory operate as expanded memory. This DOS utility is
called EMM386 and only works on 80386 or higher central
processors. Lotus, Intel and Microsoft Corporations (the letters
of each company gave rise to the LIM specification) developed
the early expanded memory management scheme when it was realized
that early spreadsheets and other software needed more space
than the existing 640K of conventional memory.
Of the two types, extended memory and expanded memory, today's
software is usually configured to use extended memory if
available. Even older XT computers, those using the 8088
processor, can use expanded memory if an additional memory
circuit board is installed. However XT class machines cannot use
extended memory which is only available to machines using 80286,
80386 and 80486 processors and their variants.
A concrete example to keep things simple. A customer might
purchase a computer with 4 Megs or 4MB of memory. Of this, 640K
is conventional memory. 384K is upper memory and the final 3M (3
Megs) is extended memory.
Early XT class computers using the 8088 processor had only 640K
of RAM or possibly 1 Meg of RAM. Users of AT class machines
using the 80286 central processor frequently install between 2
Megs and 4 Megs of RAM. Owners of computers housing 386, 386SX,
486 or 486SX processors are able to access more than 16MB (16
megabytes) of RAM. However, 4 to 8 Megs of RAM is considered a
comfortable amount of memory on modern machines. A few "power
users" may install 16 Megs or more of RAM memory. Note that XT
computers using 8088 central processors cannot use extended
memory.
Software programs that can run directly in extended memory are
sometimes called DOS-extended programs. These types of programs
can tell the central processor to switch to a special PROTECTED
mode of operation for greater RAM memory access. Protected mode
processors such as those based on the 80286, 80386 and 80486 can
switch to protected mode to address greater amounts of memory.
These processors switch from REAL mode into PROTECTED mode to
address greater amounts of memory. The lowly 8088 processor used
in the first IBM PC's operated only in REAL mode. Today many
software programs use DOS extenders within their software code
which allow computers to run in protected mode and thus address
greater amounts of memory.
Although commercial software memory management utilities exist
such as QEMM-386 and QRAM (from the Quarterdeck Company) and
386MAX (from the Qualitas Company), DOS itself contains valuable
software utilities to also accomplish the job. Note that users
of DOS versions 5.0 and 6.0 have a variety of tools which can be
used to configure memory for more efficient use. If you are not
sure what version of DOS you have, simply type the DOS version
command at the DOS prompt: VER <then press enter/return key>.
DOS will tell you what version you are running.
The extended memory management utility program contained in DOS
versions 5.0 and 6.0 is called HIMEM.SYS. It allocates and
manages memory so that no two software programs try to use the
same chunk of memory at the same time. A HIMEM.SYS statement is
normally added to the CONFIG.SYS file which resides in the root
directory of your hard drive.
Let's roll up our shirt sleeves and study HOW to manage memory.
Be sure to glance at the memory map presented earlier in this
tutorial to visualize what you are doing as this section of the
tutorial progresses. Remember that many of these DOS commands
and functions are ONLY found in DOS 5.0 and 6.0. Users of
earlier versons of DOS can use special commercial and shareware
utility software to emulate these functions if they do not own
or wish to purchase DOS 5.0 or DOS 6.0.
----------------------------------------------------------------
THE DOS MEM COMMAND PRODUCES ESSENTIAL REPORTS
----------------------------------------------------------------
If you are using DOS version 5.0 or 6.0 here is your first
homework assignment. Use the MEM command to give you a report of
the programs in memory, type of memory your machine contains and
totals of each type of memory. At the DOS prompt type the
command: MEM /C <then press enter/return key). A report
will appear which contains useful information about the size and
location of programs in memory. As you tinker with different
configurations of memory run MEM /C from time to time to see how
memory is used. Note that MEM actually has three command line
switches of which MEM /C is the most useful.
If the report scrolls by too quickly use the DOS MORE command to
slow it down. Type the following: MEM /C|MORE
Want to print the report to paper? Try this: MEM /C>PRN
Want the report printed to a small file for reading later? To
create a report named CATFISH.TXT try this: MEM /C>CATFISH.TXT
MEM syntax is:
MEM [/CLASSIFY|/DEBUG|PROGRAM]
Parameters:
/CLASSIFY Provide list of programs in conventional and
or /C upper memory
/DEBUG Provide list of programs and device drivers
or /D loaded in memory
/PROGRAM Provide list of programs in memory
or /P
The /C parameter switch is perhaps the most useful for
determining contents of upper memory and may called from a batch
file such as AUTOEXEC.BAT to confirm critical upper memory every
time your machine is started!
Be sure to run the MEM /C command from time to time as you
tinker with memory. This is VITAL to achieving optimum memory
configuration.
----------------------------------------------------------------
TINKERING WITH CONFIG.SYS AND AUTOEXEC.BAT
----------------------------------------------------------------
The key to tinkering with memory is to rearrange the commands
within two files usually stored within the root directory of
your hard drive. These special configuration and start up files
are CONFIG.SYS and AUTOEXEC.BAT. They are discussed in the
advanced DOS tutorial and the batch file tutorial in a earlier
section of PC-Learn so you might want to read those two
tutorials a second time to brush up a bit before proceeding.
To change the commands and statements within CONFIG.SYS and
AUTOEXEC.BAT we need a text editor or word processor - DOS
versions 5.0 and 6.0 provides a simple editor called EDIT.COM.
To load a file named CONFIG.SYS into the editor simply type the
command: EDIT CONFIG.SYS. For hard drive users, since
CONFIG.SYS usually resides in the root directory of the hard
drive, the command might instead be EDIT C:\CONFIG.SYS. Then you
can change and rearrange statements in the file. When you are
done tinkering simply use the editor to save the file back to
disk in the newly revised version.
Be SURE to save a spare copy of both CONFIG.SYS and AUTOEXEC.BAT
on a spare floppy disk just in case your tinkering leaves your
machine operating poorly. If necessary you can then reboot the
computer from a fresh copy of DOS on floppy disk and then recopy
the old versions of CONFIG.SYS and AUTOEXEC.BAT back to the hard
drive root directory. If you are using your word processor to
affect changes in CONFIG.SYS or AUTOEXEC.BAT be sure to save the
file in pure ASCII format and not WordPerfect or Microsoft Word
format!
Let's get to work...
Assuming you have a computer with 80286, 80386 or 80486 processor
and MORE than 1 Meg of RAM memory you can load DOS itself into
the high memory area. You must be running DOS 5.0 or 6.0 to use
this trick. Add the following two lines as the FIRST two
statements of your CONFIG.SYS file:
C:\DOS\HIMEM.SYS
DOS=HIGH
When you have done this, reboot your computer to let the revised
CONFIG.SYS take charge! Test available memory by running the test
utility MEM /C.
HIMEM.SYS is the high memory manager of DOS. The two lines given
above must be placed as the FIRST lines before other upper
memory mangers or statements within the CONFIG.SYS file (for
example, before EMM386.EXE is loaded). The command DOS=HIGH
tells DOS to load itself in the high memory area.
----------------------------------------------------------------
LET'S TINKER WITH THE UMA
----------------------------------------------------------------
Memory resident programs, also called TSR's (terminate and stay
resident software) can also be moved out of conventional memory
into the UMA (upper memory area) of extended memory. This is
done by using the software utility found in DOS 5.0 and 6.0
called EMM386.EXE. Note that EMM386.EXE will ONLY work on 80386
and 80486 computers (as well as their close cousins, the 80386SX
and 80486SX computers).
We will add another line or so to the CONFIG.SYS file to
accomplish this. Note that you can add several parameters to the
EMM386 command. The command has several variations. For example,
you might want to tell EMM386 to NOT create expanded memory from
extended memory. This is done by inserting the following command
in the CONFIG.SYS file and then rebooting the computer:
DEVICE=C:\DOS\EMM386.EXE NOEMS
Note the word "NOEMS" which sets the computer so that extended
memory is NOT used for expanded memory. However, if you want to
convert 2 MB of extended memory to expanded memory and also want
EMM386 to manage DOS programs in extended memory add this
command to CONFIG.SYS:
DEVICE= C:\DOS\EMM386.EXE RAM 2048
----------------------------------------------------------------
LET'S LOAD TSR'S AND DEVICE DRIVERS INTO UMA
----------------------------------------------------------------
Let's load device drivers and TSR programs into the upper memory
area (UMA). First, run the MEM /C command and study the report.
Find the entry marked "largest available upper memory block".
Next determine the size of the largest device driver listed in
the conventional memory list that could fit into this vacant
space in memory. Let's say that somewhere in your CONFIG.SYS you
are using the device driver ANSI.SYS which is currently loaded
into the conventional memory area. To send it into the upper
memory area CHANGE this command in CONFIG.SYS:
DEVICE=C:\DOS\ANSI.SYS
to this new command:
DEVICEHIGH=C:\DOS\ANSI.SYS
Reboot the computer, run the MEM /C command and study the
result. As you locate areas in upper memory which are free, try
to tuck device drivers such as ANSI.SYS and others into upper
memory by modifying the DEVICE= statement into the
DEVICEHIGH= statement.
Device drivers such as DOSKEY, GRAPHICS, and MOUSE drivers can
all be loaded into upper memory using this tip!
You further modify this technique by adding the following
statement to the DOS=HIGH command that we placed in CONFIG.SYS.
Instead of seeing this statement: DOS=HIGH
We would see this statement: DOS=HIGH,UMB
This modification tells DOS that programs are loaded into the
upper memory blocks (programs such as the mouse driver or
ANSI.SYS, that we discussed) and that DOS should maintain a sort
of "memory link" to them. If you forget to add this switch
(,UMB) then DOS will load the devices high into upper memory but
will NOT be able to operate them since it does not know they
have been relocated.
Be sure to use the MEM /C command from time to time to see how
you are doing on memory optimization. Be sure to reboot (or
restart) the computer each time you make a modification to see
the results.
A curve ball! This method works for device drivers (like the
mouse driver or ANSI.SYS), but what can be done if you want to
load a TSR program (terminate and stay resident - popup program)
into upper memory? Instead of the DEVICEHIGH= command inside
the CONFIG.SYS file, use a different command: LOADHIGH. But be
careful! The LOADHIGH command is used ONLY in the AUTOEXEC.BAT
file, NOT in the CONFIG.SYS file. For example, a computer user
might be running the TSR program DOSKEY which is a useful macro
processor found in DOS versions 5.0 and 6.0. Instead of this
command in the AUTOEXEC.BAT: DOSKEY the following memory
efficient command might be used in AUTOEXEC.BAT: LOADHIGH DOSKEY
----------------------------------------------------------------
BEFORE AND AFTER OPTIMIZATION: EXAMPLES
----------------------------------------------------------------
Sometimes it is helpful to study actual examples of memory
optimization. With that in mind, listed below are some sample
CONFIG.SYS and AUTOEXEC.BAT files both before and after memory
optimization. Remember that these two files normally reside in
the root directory of your hard drive C:\ Be sure to save
your original files on floppy in case you your tinkering
produces unworkable results.
CONFIG.SYS (BEFORE OPTIMIZATION)
DEVICE=C:\DOS\ANSI.SYS
FILES=20
BUFFERS=30,8
CONFIG.SYS (AFTER OPTIMIZATION)
DEVICE=C:DOS\HIMEM.SYS
DOS=HIGH,UMB
DEVICE=C:\DOS\EMM386.EXE NOEMS
DEVICE=C:DOS\SMARTDRV.SYS 1024 2048
DEVICEHIGH=C:\DOS\ANSI.SYS
FILES=20
BUFFERS=30,8
AUTOEXEC.BAT (BEFORE OPTIMIZATION)
PROMPT $p$g
PATH C:\;C:\DOS;\C:\GAMES
C:\DOS\DOSKEY.COM
C:\DOS\MOUSE
AUTOEXEC.BAT (AFTER OPTIMIZATION)
PROMPT $p$g
PATH C:\;C:\DOS;\C:\GAMES
LOADHIGH C:\DOS\DOSKEY.COM
LOADHIGH C:\DOS\MOUSE
----------------------------------------------------------------
MORE EXAMPLES
----------------------------------------------------------------
Here is a typical minimal CONFIG.SYS for a 80286 computer having
only 1 Meg of memory:
DEVICE=C:DOS\HIMEM.SYS
DOS=HIGH
DEVICE=C:\DOS\SMARTDRV.SYS 256 128
FILES=20
BUFFERS=4
STACKS=0,0
The first line loads the memory manager HIMEM.SYS which works
only with 80286, 80386 or 80486 machines. Line two loads DOS
into high memory. Line three loads the hard disk cache which
comes with DOS, SMARTDRV. 256 is the maximum size for the disk
cache and 128 is the minimum size. If only one number is given
this is automatically the maximum size for the cache. The next
line means that up to 20 DOS files can be open at one time. The
next line referring to buffers allocates memory for data to be
retrieved from the disk drive. Buffers can probably be decreased
since SMARTDRV.SYS performs many of the same functions as
buffers and is faster. The final statement referring to STACKS
allows even more memory to be squeezed from the machine. Most
programs should run fine with STACKS=0,0 but if some programs
lock up you can remove this line. Any references to EMM386.EXE
are omitted from this CONFIG.SYS because 80286 based machines
cannot use that utility.
Next, a typical CONFIG.SYS for a more powerful 80386 or 80486
machine.
DEVICE=C:DOS\HIMEM.SYS
DOS=HIGH,UMB
DEVICE=C:\DOS\EMM386.EXE NOEMS
DEVICEHIGH=C:\DOS\SMARTDRV.SYS 256 128
FILES=20
BUFFERS=4
STACKS=0,0
The interesting differences here are that the EMM386 memory
manager is loaded including the ,UMB switch. Also the DEVICEHIGH
statement is used to load SMARTDRV.SYS driver high.
If you have a 80386 or 80486 machine with at least two megabytes
of memory or more you can increase the SMARTDRV.SYS statement
from this: SMARTDRV.SYS 256 128
to this: SMARTDRV.SYS 1024 256
This increases the size and performance of the SMARTDRV system
which your hard drive uses.
Conversely, if you run Windows 3.1 and have trouble running in
a higher mode you might change SMARTDRV.SYS to this:
SMARTDRV.SYS 128
----------------------------------------------------------------
POWER USER TIPS
----------------------------------------------------------------
The LOADHIGH statement, used in the AUTOEXEC.BAT file, can be
abbreviated to LH if you prefer. LOADHIGH works on only 80386 or
80486 machines.
80286 computers can use the DOS=HIGH command.
If you are not using DOS 5.0 or 6.0 and are interested in upper
memory and extended memory management, you can buy commercial
and shareware programs to accomplish this without DOS 5.0 or
6.0.
Never try to relocate HIMEM.SYS or EMM.EXE into the UMA using
the DEVICEHIGH command! These programs MUST reside in
conventional memory!
Load HIMEM.SYS before EMM386.EXE.
Always add the ,UMB switch to the DOS=HIGH command BEFORE you
load device drivers and TSR (memory resident programs) into the
UMA.
Don't try to use EMM386.EXE on 8088, 8086 or 80286 computers.
Always load the device driver required by your own EMS (expanded
memory board) and all device drivers that use extended memory
BEFORE you load EMM386.EXE and immediately after loading
HIMEM.SYS.
Do NOT try to use EMM386.EXE to simulate EMS (expanded memory)
if another expanded memory manager is already present.
Sometimes a software program may use its own internal memory
manager or DOS extender. If a program works fine before you use
EMM386.EXE and fails after installing EMM386.EXE, contact the
program's manufacturer. You may need an update to your
spreadsheet or database package so that it is compatible with
EMM386.EXE.
If you use Windows 3.0 which contains older versions of
EMM386.EXE and HIMEM.SYS programs, delete those versions and use
the newer versions which come with DOS 5.0 or 6.0.
When using DOS 5.0 or 6.0 memory management tricks, remember
that EMS (expanded memory) managers use a small portion of UMA
which resides between 640K and 1 Meg for the EMS page frame.
This page frame memory requirement of EMS memory produces a
smaller amount of UMA memory for DOS to relocate device drivers
and TSR memory resident programs. This if you do not need EMS
memory DO NOT load or configure it!
Tutorial finished. Have you registered PC-Learn to receive your
bonus disks? Registration is encouraged. Shareware works on the
honor system! Send $25 to Seattle Scientific Photography,
Department PCL6, PO Box 1506, Mercer Island, WA 98040. Latest
version of PC-Learn and two bonus disks shipped promptly!