Dear Reader,

Here is your long-awaited favourite literature, just in time for your Christmas holidays. As we enter our fifth volume, we have given our magazine a face-lift, as well as re-christened it to SA SHAREWARE Magazine. We hope you like its new appearance just as much as we do.

On popular request, we have reviewed a whole lot of educational shareware as well as a large collection of fabulous games, whilst throwing in a fair measure of business and home applications. In our next issue we will add many Windows applications as well as a section especially devoted to South African shareware.

In our articles we have again tried to keep a delicate balance between beginner's, intermediate and advanced articles. We also aimed to retain some humorous articles to offset the more serious stuff.

Our best wishes for the holiday season and the New Year!

from Jean-Paul, Eva, Anneke & Jonathan, Farah-Deebah & Albertina.

 

 

From the Editor's Desk 1

An Introduction to ISDN 2

AGGIE's Medical Terminology 9

6 Fun DOS Prompts 10

Keeping Your PC in Good Health 12

On Innovators and Pioneers 16

A Simple Barchart Program in Basic 21

The Path to Your Command 26

New Shareware Reviews 28

 

 

by Dory Leifer

[excerpted by Jody Kravitz]

Motivated by the ever increasing public need to send digital information in the form of voice, data or image, national governments along with private corporations have developed a scheme called Integrated Services Digital Network (ISDN). Although this concept dates back to the early 1970s, only recently have standards been developed. The standardization of ISDN has resulted in an emerging market of ISDN equipment and service plans. This technology will have widespread impact on both suppliers and users of network equipment and services.

In the United States, all seven regional Bell operating companies have initiated limited testing and deployment of ISDN. General deployment is expected during the mid to late 1990s. Our European and Japanese counterparts are committed to the nationwide implementation of ISDN.

This article introduces the basic concepts of telephone networks and ISDN and explores possible applications of ISDN technology.

The telephone network

In order to understand why ISDN evolved, let's look at the current telephone network. The basic telephone is an analog instrument connected to a pair of wires. The pair of wires from a subscriber's premises, a private home for example, is connected over approximately a mile of cable to a local telephone company's central office. This pair of wires is commonly called the "last mile" or local loop.

Inside the central office, the pair is attached to a device called a switch. The switch converts the analog signal to digital by sampling it thousands of times a second. The switch also routes the call by examining the telephone number called. If the call is long-distance, it is routed by the local telephone company, Michigan Bell, for example, to an Interexchange Carrier (IEC) such as AT&T, MCI, or US Sprint. The IEC routes the call to the local telephone company at the destination, still preserving the digital nature of the signal.

This conversion between analog and digital seems reasonable for voice since humans (even programmers) cannot hear or speak digitally. But what if we intend to exchange digital information by connecting two computers together? In that case, we must convert digital information from our computers into analog signals using a modem.

When these signals reach the central office, they are converted back to digital. The reverse process is used at the destination switch to convert the digital signal back to analog and pass it to the destination modem which finally turns it back for the last time to a computer bit stream.

This process is not only redundant, it is inefficient. When voice is converted from analog to digital, a bit rate of 56,000 bits-per-second (bps) is typically dedicated to carrying it. This rate is required to make sure that the voice will sound natural when it is converted back to analog. Since the telephone network treats modems the same way, a rate of 56,000 bps is also required to convey modem signals. However, most modems send and receive at or under 2400 bps. The rest of the capacity is wasted.

Modems serve another purpose apart from digital transmission. Most modern modems incorporate automatic dialling and answer functions. We say that an autodial modem exchanges signalling information with the telephone network. The modem can be instructed to place a call and report its progress: examples of what it can report back are "ringing", "busy", and "no circuits available".

Again in this case, because the telephone network is designed for voice, computer equipment is disadvantaged. The modem requires special hardware to detect (actually to listen and guess) the sound of a busy signal, ring, or call incomplete message (usually preceded by three tones). This type of signalling is not only analog but it is in band: that is, signals and real transmitted information use the same channel. Sharing a single circuit to convey both transmission and signalling information imposes serious limitations.

ISDN relieves the limitations of both in-band signalling and analog transmission. The next section describes a standard ISDN interface which provides end-to-end digital transmission and separates the signalling functions from the transmission functions. ISDN basic rate interface.

The ISDN basic rate interface is the standard interface to connect subscribers to the ISDN. This interface uses the existing telephone wire pair. Instead of using this pair for analog signalling and transmission, only digital information is conveyed. On this wire, three channels or digital paths exist. The channels are multiplexed by giving each a time slice on the wire. Since ISDN channels are half duplex or uni-directional, a "ping-pong" method is used so that when one end transmits, the other listens. The ping pong happens with every tick of some central clock so the link appears to be bidirectional.

Each ISDN circuit includes three channels:

* 2 B or Bearer channels for data or voice (each 64,000 bps)

* 1 D or Data channel for signalling or packet data (16,000 bps)

These channels provide both signalling and transmission. Notice that there is no distinction between voice and data on the B-channel. The ISDN treats both as a stream of bits. The bits have significance only to the terminating equipment such as a telephone for voice or a computer for data. When a subscriber wishes to place a call, the terminating equipment sends a packet on the D-channel containing the information needed by the network in order to establish the call. Assuming that the call succeeds, the subscriber may then send either voice or data on a B-channel. To end the call, a take-down packet is sent. This is analogous to hanging up.

Bearer channel transmission

The B-channel is referred to as a clear channel because of its ability to pass an arbitrary bit stream transparently. In reality, arbitrary bit patterns have limited uses since the B-channel must adhere to the disciplines of existing voice and data networks. Sending voice using some non-standard encoding would preclude placing calls between the ISDN and the existing telephone network. A standard Pulse Code Modulation (PCM) scheme has been standardized for digitized voice because it is compatible with the existing voice network.

Correspondingly, a data protocol must be employed on the B-channel if the subscriber is to reach hosts on the existing packet services which are not yet on the ISDN. Even if the host is on the ISDN, the network provides no guarantee that the data will be transmitted without errors. This is not a serious problem with terminal sessions (we live with error-prone modems), but for computer to computer connections (for example, performing a file transfer) an error-correction protocol may be required.

The B-channel itself provides services that comply with layer one of the Open Systems Interconnection (OSI) Reference model (the physical layer). That is, it offers a medium through which bits may pass.

If a subscriber uses the ISDN to call another computer directly, a minimum of a layer-two protocol is involved for error correction and flow control. In many cases, the subscriber will wish to access a host on a packet network like Telenet. In this case, both a link layer (OSI layer two) and network layer (layer three) are required. The subscriber then uses the X.25 protocol between the ISDN and his or her machine. An interworking unit acts as a gateway between the ISDN and the packet network, using the X.75 protocol.

A somewhat similar service could be deployed by Merit in the future to provide Internet access for ISDN subscribers. Off-campus users could place an ISDN call to an Internet gateway. They could then access TCP/IP applications like file transfer, remote terminal, and mail. ISDN provides added support in this case: since the ISDN would report the caller's address, a unique Internet address could be associated with a particular calling address. Other services which require authentication of the caller would also be facilitated by this feature.

The data channel

The Data or D-Channel was originally specified by the CCITT for signalling but later was re-specified to include both signalling and transmission of packet data. Unlike its sister B-channel, the D-channel is not designed to carry an arbitrary bit stream. The D-channel uses both a link layer, Link Access Protocol-D (LAPD), similar to HDLC, and a network layer, Q.931, similar to X.25.

The D-channel may be used for packet data when data throughput is not of high priority. No call set-up or take-down is required when using the D-channel to interface in packet mode.

The signalling protocol on the D-channel is based on the set of signalling messages needed to establish and release a simple 64,000 bps B-channel voice or data connection. Included in call set-up are:

* Flexible addressing compatible with many standard networks

* Required data rate

* IEC (long distance carrier) selection if applicable

* Notification if line forwarded to another address

* User information text

Signalling information is exchanged between a subscriber and the ISDN. But this information must also be passed within the ISDN to assure timely circuit establishment, efficient allocation of resources, and accurate billing and accounting between various service providers. A protocol called Common Channel Signalling Number Seven (CCS7) performs these functions. CCS7 was designed by AT&T and is based on the international standard CCITT Signalling System Seven (SS7). CCS7 is already used on a wide scale for signalling in the non-ISDN world but will be essential to support ISDN.

Equipment

Compatibility with existing equipment is extremely important to most of the users who will migrate from switched and private networks to ISDN. Therefore, most of the early ISDN equipment which users will purchase will be adapters for non-ISDN devices such as asynchronous terminals with RS-232 interfaces, 3270 style terminals with IBM SDLC and coax interfaces, and various LANs. An interface to connect common analog telephones will surely be a hot seller.

Many of these devices are quite complex because they have to support both signalling and transmission. For example, an adapter which allows RS-232 attachment for terminals needs to interface with both the B- and D- channels.

Under development by several manufacturers are integrated terminals that combine voice, data, and signalling into a compact desktop package. Initially, these terminals will function as expensive desktop space savers, replacing a separate phone and terminal, but later they will provide access to truly integrated services.

What is an integrated service?

An integrated service is one that is capable of providing a wide assortment of information well organized into a single package. This information may be, for example, in the form of voice, computer data, video, or facsimile.

Initially, services available on ISDN will not be integrated. Voice and data, although they may be accessed together on an integrated terminal, have little to do with one another. Voice calls will involve only voice and data calls only data. We speak of this relationship as Service Coexistence.

The second generation of ISDN services will be integrated. For example, consider a future bank credit card service. A card holder who disputes an entry in the credit card bill places an ISDN call to the bank. At the bank, a customer representative equipped with an ISDN terminal answers the call. The bank representative immediately has access to the caller's name and records since the ISDN passes the customer's originating address. The bank uses this address as a key into its customer database. The representative can address the customer by name when answering the phone. When the customer explains the nature of the problem, the bank representative retrieves the previous month's bill, which appears simultaneously on both screens. If the statement is in error, the balance can be recomputed before the customer's eyes. Integrated services can also facilitate research collaboration via multi-media voice, image, and control functions between scientists.

Applications which require exchange of only short, infrequent messages can use services offered by the D- channel. Applications such as burglary alerting, energy control, credit card verification, cable TV requests for service, and home shopping can be accomplished using the D-channel packet facilities.

Advantages of circuit switching

Although the data rate of 64,000 bps may be too slow for bandwidth-intensive applications like real-time high definition imaging, ISDN's circuit-switched capabilities do offer several advantages to the research community over packet-switched networks like Merit, NSFNET or ARPANET. Certain real-time applications which require cross-country connectivity can be run over ISDN. Although the individual circuits which comprise modern packet networks may be much faster than 64,000 bps, the overhead involved in packet switching and queuing is far in excess of similar circuit switching functions on an established call.

Packet networks try to optimize aggregate performance across the entire network. Real-time applications are usually interested not in averages but rather in worst cases. If you get a 64,000 bps ISDN circuit, you will be guaranteed 64,000 bps service for the duration of the connection. Throughput on a packet network might average 150,000 bps, for example, but might fall below 64,000 bps 10% of the time, causing serious problems for a real-time system.

Another advantage ISDN has over packet networks is its potential ability to interface to a wide variety of digital laboratory equipment. The ISDN B-channel offers clear channel transmission. There is no protocol overhead involved in order to exchange information. This bit pipe can be used, for example, between detector/collector paired devices without the complication and expense of packet protocol gateway machines at each end of the connection. ISDN interfaces will eventually be readily available in VLSI, which will allow them to work with a wide variety of equipment at minimal additional cost.

High speed (broadband) ISDN

Many argue that 64,000 bps, based on the transmission capacity of the existing telephone system, is too slow to provide a wide assortment of integrated services. High-definition television, computer-aided design, medical imaging, and high-quality audio all require far more bandwidth than available in the current ISDN. An evolving standard for broadband ISDN (B-ISDN) may include 150 Megabit-per-second subscriber lines over fibre optic local loops.

Conclusion

ISDN will extend the capabilities of today's telephone networks, thus providing a market for new services. Most introductory services will apply service co-existence; services will be described as "running over" ISDN. ISDN will do for data networks what the Communications Act of 1934 did for voice -- provide a ubiquitous method for public transmission. Pioneer users of this technology will have both the opportunity and the challenge of helping to shape the future of telecommunications.

 

 

 

ARTERY - the study of paintings

BARIUM - what you do when CPR fails

CESAREAN SECTION - A district in Rome

COLIC - A sheep dog

COMA - A punctuation mark

CONGENITAL - Friendly

DILATE - To live long

FESTER - Quicker

G.I. SERIES - Baseball games between

teams of soldiers

GRIPPE - A suit case

HANGNAIL - A coat hook

MEDICAL STAFF - A doctor's cane

MORBID - A higher offer

NITRATE - Lower than the day rate

NODE - was aware of

OUTPATIENT - a person who has fainted

POST-OPERATIVE - A letter carrier

PROTEIN - In favour of young people

SECRETION - Hiding anything

SEROLOGY - Study of English Knighthood

TABLET - A small table

TUMOUR - An extra pair

URINE - Opposite of you're out

VARICOSE VEINS - Veins which are very

close together

 

 

by Jean-Paul Van Belle

The DOS command PROMPT allows you to change the standard prompt to almost whatever you like it to be. E.g. typing PROMPT AHA will replace the prompt C:> with AHA. If you have loaded the ANSI.SYS screen device driver in your CONFIG.SYS (refer to previous issues or your DOS manual on how to do this and why!), then you can actually create very fun and colourful DOS prompts. Below are a number of fun examples drawn from a recent competition held by PC-Magazine.

To execute these from the DOS prompt, you can use the <Alt>-numeric keys to create the special graphics characters (ASCII codes between 128 and 255). E.g. press <Alt> and keep it down whilst pressing the numbers 2-1-9 in sequence (representing the ASCII code 219) on your NUMERIC keypad. When you release the <Alt> key, it should produce a (solid block). Consult the ASCII table which can be found (usually as an appendix) in most computer books, your DOS manual, your printer manual or various pop-up TSRs for the other graphics characters such as etc.

You can also use your text editor or word processor to add one of the prompts to your AUTOEXEC.BAT file or to create a stand-alone batch file (PROMPT1.BAT, etc.) to execute the desired PROMPT command whenever you feel like it. Each text editor/word processor has its own convention on how to create the graphics characters, although the method mentioned earlier should work with most programs. E.g. WordPerfect allows both the <Alt>-numeric keypad method as well as a <special character> method by pressing <Ctrl>-<V>; for more information: press F3 (help) followed by <Ctrl>-<V>.

It is advisable to use a non-frills text or program editor. Word processors generally save in a proprietary format and must be requested specifically to save in a "DOS" text file. E.g. WordStar users should use non-document mode, WordPerfect users should save the batch file using the <Ctrl>-<F5> DOS_Text Save command. To make matters even more complicated, with word processors you will need to ensure that the entire prompt statement is saved on a single line e.g. by using a very small or condensed font.

Note that there is a 128-byte limit to the length of the PROMPT command thus these commands use nearly all the space available.

Have fun.

Notes: - In what follows, the (centre dot) represents the <space> character, i.e. you should hit the space bar once for every !

- All text following the PROMPT should be typed continuously i.e. without pressing <Enter> to move onto the next line.

- Don't forget that the statement DEVICE=ANSI.SYS must be part of your CONFIG.SYS file (and ANSI.SYS, one of the MS-DOS files, must be copied to the root directory of your boot disk).

PROMPT $_$e[1;33;40m ▄███▄ $_$e[31;40m███████$_$e[35;40m███████$_$e[34;40m ▀███▀ $_$e[0;37;40m$p$g

PROMPT $_$e[1;32;40m__█████__$_ $e[33;40m o o $e[32;40m $_$e[31;40m ^ $_ ╚═══╝$e[33;40m$_$e[0;37;40m$p$g

PROMPT $_$e[1;31;40m $_$e[37;47m $e[30;40m$_$e[37;47m* * W$e[30;40m$_$e[0;37;40m$p$g

PROMPT $_$e[1;34;40m__$e[37;41m▌▌▌▌▌$e[34;40m__$_ $e[33;40m o o $e[34;40m $_$e[31;40m ^ $_ ╚═══╝ $_$e[0;37;40m$p$g

A MAN ABOUT TO SPEAK THE TRUTH SHOULD KEEP ONE FOOT IN THE STIRRUP. - Old Mongolian Saying

THE GEM CANNOT BE POLISHED WITHOUT FRICTION, NOR MAN PERFECTED WITHOUT TRIALS. - Confucius

PROSPERITY IS A GREAT TEACHER; ADVERSITY A GREATER. - William Hazlitt

FISH AND VISITORS STINK IN THREE DAYS. - Benjamin Franklin

ONE MACHINE CAN DO THE WORK OF FIFTY ORDINARY MEN. NO MACHINE CAN DO THE WORK OF ONE EXTRAORDINARY MAN. - Elbert Hubbard

 

 

or "How Not To Break It."

by Arthur E.Barker, Jr.

Preventing expensive repairs is not difficult, but it does require constant attention to problems, and resolving them as quickly as possible. The main sources of problems with electronic equipment are heat, vibration, surges, dust, and operator malfunction.

Heat is a real enemy of electronic equipment. The life of silicon components is inversely proportional to their operating temperature. By keeping it cool, you save money. Look over your equipment; notice the cooling vents. It is wise to keep them free from anything that will block airflow. A good three or four inches is necessary for good circulation. Don't place papers or books on top of a monitor, as most have vents on top.

A fan is often used to force air into or out of an enclosure to reduce heat build-up. This aids in reducing package size by allowing less room for airflow, but heat build-up will drastically increase if the fan were to malfunction. It is a very bad idea to use equipment if this happens, as some other component will overheat and fail very rapidly. Fans also cause increased dust buildup, which blocks the airflow, and causes mechanical problems. One way to eliminate the dust problem is to install a fan filter. This will eliminate almost all of the dust, but if not cleaned very often the filter will clog up with dust and shut off airflow. Cleaning the filter daily would be a good idea. Fans also make noise, and their vibrations can cause mechanical problems.

Dust is usually an easy problem to overcome. A plastic sheet available at any hardware store for a dollar makes an excellent dust cover. One size fits all. A little overhang is acceptable, although possibly not appealing. For a higher price dust covers are available for most brands of computers. Dust covers also prevent liquid spills.

Surges can be devastating to electronic equipment. They can originate on the power line, the phone line, or from local electrostatic sources. Surge suppressors are available for the power lines and are well worth the money. Surges can originate on the ground line as well; so unplugging equipment is the only sure way to prevent damage. The ground line is connected even with power off.

Controlling static electricity can be a problem. The best solution is not to use equipment on a carpet. If this is not possible static mats are available, though expensive. Static sprays are inexpensive and effective if used regularly. Wrist straps, heel clips and other devices are nice to have, but get the spray first. The pump style is more cost effective than the aerosol can.

Vibration is a very easy problem to cure if your system is not portable. Just put it somewhere and leave it there. Moving a computer around is a sure way to cause a cable or board to loosen.

Hard disk drives are very sensitive to vibration, especially sudden shocks. Always "ship" the heads of a hard disk before shutting it off. You may destroy your hard disk if you do not. Never move the drive with power applied. Not even an inch. If you must move a hard disk system, ship the head first on the drive, shut it off, then wait for the drive to stop spinning (30 seconds or so). When you move it use two people, be careful, and set it down gently. Opening the sealed cover on a hard disk outside of a class 100 clean room will destroy the drive. Don't take yours apart to see what's inside!

Operator malfunction is usually caused by communications breakdown between the operator and the manuals. (Remember the manuals? Those dusty books on the shelf!?) Reading your manual will tell you all kinds of neat things about your equipment. Some of them were written by programmers so they are bound to be confusing. Figure out what you can and see if the rest is important. Don't forget to check for the errata sheet and make corrections in your manual. Other sources of operator malfunction are take-apart-itis, cola-in-a-keyboard, and the canine-cable-chew syndrome.

Printers tend to be a maintenance headache. The problem is dust caused by paper lint, and vibration caused by its mechanics. Cleaning out the dust is not difficult and aerosol cans of compressed air are quite useful for this purpose. The old ink can be removed with denatured alcohol obtainable at most pharmacies. Most dot matrix printers require lubricating ink to prevent printhead failure. Use of standard typewriter ribbons should be avoided in matrix printers for this reason. Another thing to watch out for around printers is your fingers. Make sure the printer is offline (preferably off all together) before lifting the cover.

Most printers will perform a self test, which is useful when you have problems. The usual procedure is install paper, disconnect interface cable, then press and hold the line feed button while turning the power on. Some printers are different, so check your manual. This self test will often be enough to determine if the printer or the computer is failing. If you are having problems with your printer, check the following things: ribbon installed properly and not empty, paper installed, cover closed, cable connected, and printer online. If the printout is in italics, double size, compressed, and it shouldn't be, try shutting your printer off and back on. Printers normally contain small computers, which can remember a command you gave it three programs ago. Shutting the printer off will clear all of those old commands.

Last and most important is the problem of a label stuck under the platen. If you can, feed labels from the bottom of the printer, or use a printer with a removable platen. If you can't, see if you can borrow a printer. All else failing, check your service contract, and pray. Never try to feed a labels backwards out of the printer. Cut the labels as close as you can, and line feed the rest out. Many printers have mechanisms that will snag a label going backwards and cause a jam. Don't use a metal object to try to remove a jammed label, try something plastic or wood, or else you may destroy the platen. If you can't get it out, take it to your favourite service centre.

The next biggest mechanical device, and therefore headache, is the floppy disk drive. It suffers from the same vibration headache as the printer. Dust in a floppy drive is not nearly the problem as with printers. The heads on a floppy disk drive stay remarkably clean, as the floppy disk drive jacket contains a cleaning pad. If your system contains a fan which draws air into the drive, you may need to clean your heads annually, but do not do it more frequently.

Improper use of a cleaning disk can destroy the head load pad in a single sided drive. Read the directions carefully.

The read/write head in a floppy disk drive must be in the proper place on the diskette, or else improper operation will result. This adjustment, the radial head alignment, should be checked by a qualified technician if you are experiencing disk problems.

Using quality media cannot be over emphasized, regardless of the form. Cheap media is like a cheap parachute. Turning a single sided disk over and cutting out the notches is bad practice, and can cause problems. You must make a valiant effort to protect your media from magnetic fields caused by monitors, transformers, telephones, motors, etc. Don't forget to make backups.

Proper care of your disks is very important. Keep them in the jacket in the box, or in the drive. Anywhere else, and you are playing russian roulette with your data. Keep them from temperature extremes, do not fold, bend, staple, paper clip or touch the shiny part. Insert the disk carefully into the drive, and close the door gently. The label (almost always) goes away from the red light.

Never write on a floppy disk, you will ruin it. Write on a label, and then put the label on the disk. Be sure to peel the old one off first. Too many labels will keep a disk from turning.

Monitors are usually very nice machines. Don't twiddle with all those little knobs inside, or you could cause problems. Clean the front of the tube once in a while with glass cleaner sprayed on a paper towel. Pull the plug first.

Modems are usually cooperative, except when the phone lines aren't. Some are better than others. See if your modem has a loopback test. It can tell you if a majority of the modem is working without calling anyone. Surges are just as much a problem on the phone lines as on the power lines. Some surge suppressors are available with phone jacks, but they are rather expensive. Unplugging the phone line is certain to prevent a surge.

It is good practice to mark the location and orientation of your cables to prevent them from being plugged in wrong. Watch out for frayed wires, and loose strain relief clamps. Route your cables neatly around your system, wrapping up the extra length by making a loop and securing it with tape. "Flat" cable requires extra care to prevent damage, as it has no outer sheath.

Cartridges and circuit boards should be handled carefully to prevent damage to the edge connector. If the edge connector becomes damaged, do not attempt to insert it into the machine as you may damage the socket as well. Do not clean the edge connector with an eraser, as you will remove the gold plating. Store in a static safe container. Make sure power is turned off before you insert or remove any board or cartridge. If it is possible to insert a cartridge upside down, put a warning sticker on the bottom. Always be careful when inserting or removing cartridges or cables.

Electrical noise is occasionally a problem. Most common is a computer messing up someone else's TV set. If this happens, a noise filter attached to the computer power line will usually cure it.

Establish a working relationship with a service centre. The tips presented here are a general guide, but a technician may be able to give you more specific tips.

 

 

By John L. Hawkins

Being the first to work with a new product can get you burned or help you. I've always marvelled at the vision, courage, and drive of those souls who venture into the unknown. You know: people crossing uncharted seas and mountains, plunging into jungles and caves, riding into space or to the bottom of the sea, risking everything on a new business venture, or using version 1.0 of any computer product.

Taking a risk is, well, risky. Most of us haven't trekked across unknown continents nor swallowed a mad scientist's mystery potion. But many of us do risk our reputation, our business, and our client's business on new, unproven software and hardware. Even if it blows up in our face we go back for more! Should we be so bold, or should we be more conservative?

O, pioneer ! There are reasons to be a pioneer. For one thing, you get there first, when the pickin's are best. In business you need an advantage, and knowing something before everyone else can give you a profitable edge. I'm always surprised at bow quickly requests for my training services shift to a new release. I've travelled thousands of miles to advise companies on a product that's still in beta!) Plenty of brave adventurers are in a big hurry to use WordPerfect 5.1, FoxPro, Clipper 5.0, dBASE IV 1.1, and Microsoft Windows-anything. To some, the lure of being first is irresistible. "If the product's better, we'll do better," they hope. In hindsight, leading the pack works out favourably enough to be a legitimate strategy. (The people who jumped into dBASE IV weren't being foolish. If it turned out to be a great product, they'd have been on top.)

Stick to your knitting

The countering view says, "If it ain't broke, don't fix it." Some people are quite happy with WordStar 3.3 1, WordPerfect 4.2, dBASE Ill and Lotus 1-2-3. People who play it conservatively usually aren't very wrong. WordStar 6.0 does more than 3.31, but not necessarily better. FoxPro's enhancements don't make it automatically superior to FoxBASE+ for all situations. And the wonderful Quattro Pro has more bugs than 1-2-3. People who restrain their enthusiasm for the new, the different, and the "better" are often rewarded by a sound night's sleep. Want to know how many times I've reinstalled WordPerfect 5.1, and all the problems I still have? Or why XTreeGold takes up twice as much disk space, but isn't as universally useful as XTreePro? Upgrades aren't always progress. Products are often over-improved, resulting in bloat, slowdown, and increased hardware requirements.

New isn't always better

It's quite easy-and common-to weaken a product's appeal by giving it too many features. Many think the solution is for software to adopt the hardware approach of modularity. A setup routine could let us pick the features we need. Only the code sections meeting those needs would be installed. The smaller we make it, the better it will run. Those who need massive features could have them, and those who need unusual combinations of capabilities could have that too. The rest of us would have lean and mean software. I know, some products claim to offer this modular approach now, but not the mainstream products, and not with the benefits I expect. (Admittedly, modular functionality is difficult to implement.)

We can agree that some new products are wonderful, some are dogs, and some are slow to mature. I need dBASE IV and look forward to using 1.1-the publisher's approach to support makes a major difference. The features WordPerfect 5.1 and FoxPro 1.0 offer motivate me to work through the after-release debugging. At least they offer frequent updates. On the other hand, Novell's poor support makes me uncomfortable with NetWare 3.0 (release 1.0 of the 386 version), and XTreeGold 1.4 still has bugs that are years old. I won't count on using Clipper 5.0 until 1991. Quarterdeck's DESQview is the most promising/frustrating product I've seen.

Hardware isn't immune to first-release blues either. A typical example is the Everex Step 386 computer. The box shipping now is identical on the outside, but with several significant motherboard improvements since the product was introduced two years ago. Hardware, like software, is routinely changed "in-line." I have Toshiba T3200SX laptops bought two months apart that have different BIOS ROMs (Award and Phoenix). Toshiba is switching over, though they can't tell me why. The first Hewlett-Packard IIP laser printers had a marginal controller board. And Seagate just adopted an improved design for the venerable ST4096 80M hard drive and painted it black so we can tell the difference. Video cards and monitors, network components, mouse drivers, scanners, even keyboards undergo frequent, invisible improvements-or regressions.

The Maxiswitch 101, my favourite keyboard, has been through many internal revisions. I own a dozen, yet only two work with my T3200SX and only one is usable on my Novell file server. The newest keyboards no longer have the handy switches on the bottom to select AT or XT connection and swap Ctrl and Caps Lock locations. And my keyboards sport an unusual range of cord styles. As a typing tool I've never found anything better, but the other Maxiswitch 101 variations drive me crazy.

Software is a strange creature. Because the cost of manufacturing is very low, software publishers can afford to sell us low-price upgrades. We benefit by having the latest, presumably best-effort versions. They benefit by getting us to pay for bug fixes, generating additional revenue from past customers, and by keeping us out of the hands of competitors. If WordStar, Lotus 1-2-3, and dBASE Ill PLUS had been updated responsively, would we have cared about products called WordPerfect, Quattro Pro, and FoxPro?

We don't have the same cheap upgrade opportunities with hardware. Unless your problem is serious and under warranty, few manufacturers will update you. Everex and Hewlett-Packard have swapped out IIP controllers. But recurring burnouts of the Compaq Portable's expensive power supply was ignored. Toshiba's wonderful PageLaser12 doesn't always survive shipping, and they won't reimburse the cost of sending back the delicate, but heavy printer. When problems occur with no-name clone stuff, it often turns into the most expensive equipment you can buy.

Plan for problems

If you're conservative, you won't be bothered much by new release problems. Wait at least a year before upgrading, some people advise. Don't upgrade unless you really need the new features, others recommend. "Why stick your neck out?," conservatives ask. If you're inclined to be progressive, the water gets deep fast. Be prepared to spend hours, days, and dollars resolving new release problems that aren't your fault. CompuServe makes a fortune from people willing to pay 15 an hour or more to complain about problems in products that already cost hundreds or thousands of dollars. What an industry ! The cost of progress

Now for the business part. What's the cost of your time? How much do you charge? When you're fooling around with new product problems, you're spending time without getting paid. It's common to spend thousands of dollars in time discovering workarounds for a $200 product. (How much has DESQview cost you in time spent?) If you're a hobbyist, have fun. But if you're a professional consultant, know the real cost of using new stuff.

The cost of adopting new products and versions has to be paid for by someone. When one of my clients tackles something new without my help, four out of five times I end up resuscitating the victim. After wasting a considerable amount of staff time, the client ends up paying me to make it work. I don't blame clients for this, since some products do work as advertised and I dislike providing services that aren't needed. My practice is to tell clients (if I'm aware of their plans) what things they can do and which I should do for them. Like any good consultant, my rates are related to value. Whether training, installing, programming, or consulting, skill and speed are worth a higher rate. The time we invest discovering the quirks of a product let us do in two hours what might take a client 20 hours.

A mind is a terrible thing to waste

Training has a similar equation. Educational books and magazines like Data Based Advisor are terrific bargains. People pay for training from experts and for on-site tutoring and consulting because it's a favorable equation. Buy a few days of training and acquire the benefit of the thousands of hours the expert spent mastering the topic. I'm always dismayed when someone is unwilling to buy training or attend a conference. I'm disturbed because if the information is needed, these group events can be the cheapest way to get it. If you charge $50 per hour and spend $1,500 to attend a conference or seminar, will you learn something worth 30 hours of billing.? Chances are, you'll learn enough to save those 30 hours over and over again. You might even learn enough to become more qualified, justifying a rate increase to $75, so the next $1,500 event will only cost you 20 hours of billing.

Training, seminars, reading, and experimentation provide you with knowledge. In the consulting business, knowledge is your real product. Anyone can do the mechanical parts of computer activity, if only they know what to do and how to do it. I spend at least 25 percent of my time acquiring knowledge. That's a large part of what consulting clients pay for. Even software development charges must be evaluated by considering more than the bottom line. How appropriate is the database product, how well do the programmers know its weaknesses as well as its strengths, how good is the application design, and what will happen when needs change over time? Survival as a professional consultant/developer/VAR requires a few things. Among them are ethics and cutting edge knowledge. Clients demand the former and will pay for the latter. In light of what you know about the pros and cons of using new products, consider how you present your knowledge. When a client asks, "Should I switch to NetWare 386?", my answer varies with what I know about the client's situation. I might say, "Yes, you need the performance improvement." Or, "Maybe, but you'd save money and get more benefit by upgrading your slow file server." To some I'd respond, "Don't do anything. Your system is adequate. Keep your money." I can make such statements because I've invested a great deal in research and experimentation. The consultant should suffer with new products so the client doesn't have to. If I spend 100 hours evaluating network alternatives, and 50 clients pay me for two hours of analysis and advice, I come out okay and my clients avoid costly mistakes.

Risks and rewards

Not every pioneer discovers a new world. Some trips into the unknown end in tragedy, while others lead to legendary success. When faced with the choice of moving ahead or standing still, don't immediately take a step forward. Consider the possible risks and rewards. And have a disaster recovery plan should the opportunity turn down that path. If the new software turns out to be too buggy, can your design be implemented in the previous version, or will you have to wait for a fix? Can the client wait? If new hardware develops problems, what will you do while it's undergoing repair?

On the other hand, what's the cost of being too conservative? If upgrade offers are ignored, isn't that money lost? If a new version saves time, does more, operates more reliably, or opens more doors, consider the cost of staying with the older version. It can be as expensive to under-use technology as to foolishly leap before you look.

ENCRYPTION: A POWERFUL ALGORITHMIC ENCODING TECHNIQUE EMPLOYED IN THE CREATION OF COMPUTER MANUALS. - The Dumpty Dictionary v2

NOTHING IS USELESS TO A MAN OF SENSE; HE TURNS EVERYTHING TO ACCOUNT. - Charles Fontaine

FOR EVERY COMPLICATED PROBLEM, THERE IS A SIMPLE, EASY TO UNDERSTAND, WRONG ANSWER. - Grossman's Law

WHEN THE MIND IS READY, A TEACHER APPEARS. - Zen expression

I TRIED AND FAILED. I TRIED AGAIN AND AGAIN AND SUCCEEDED. - Gail Borden

I DON'T WANT TO ACHIEVE IMMORTALITY THROUGH MY WORK ... I WANT TO ACHIEVE IT THROUGH NOT DYING. - Woody Allen

HE WHO RECEIVES A BENEFIT WITH GRATITUDE REPAYS THE FIRST INSTALLMENT ON HIS DEBT. - Seneca

 

 

by David Rice

I've been working on a labour scheduling program for the past two years, in a manufacturing facility that builds an automated blood analyzer for hospitals. When an order is placed by a hospital for one of these units, the Planner must figure out if her or his manufacturing floor can handle the added hours in labour (Standard Hours or Demonstrated (actual) Hours), and if the added labour will be greater than what the floor can handle (Capacity Hours).

The best and easiest way for the Planner to see this is by using a graph. In my scheduling program there is a spreadsheet to enter quantities (for each week, month, year, or quarter), for each assembly. A graph allows the Planner to see immediately where she or he has excess Capacity, so that assemblies may be scheduled during these slack periods. Ideally, Scheduled Actual Hours will meet Capacity, never go higher than Capacity, seldom below. With a graph, this is easy to see.

In the sample code here, I've excluded the Capacity bar and just included the single data set, for simplicity. To be functional, the routine must be able to handle large numbers mixed with small ones, sizing bars in proportional to their original values. It must allow the programmer to select how much room to leave at the top of the chart for a title, and how much room to allow at the bottom for stuff like labels, comments, etc.

I've used text mode and not graphics for several reasons. First is that almost any computer monitor will handle the graph. Also, if one wants to print out the graph, one just hits the print-screen button. Since the scheduling program was designed for a Novel Netware environment, various and vastly differing hardware may be used, and text mode allows the programmer to ignore the problem of different monitor types.

So the sample code is presented here for your use. The method is extremely simple, works every time, and well tested. Since there's no point in everyone inventing the wheel, this code is being published in the QuickBASIC News letter.

 

QUICK-BASIC SOURCE CODE

' BARS.BAS David Rice June 16, 1990

'

' Define Everything As Integer For Speed

'

defint a-z

'

' Top.Row.Allowed is how high you want the

' bars to be on the screen. Bottom.Row.Allowed

' is how low you want the bars to be on the

' screen. This is to allow text to be placed

' on the screen where you wish, top or bottom.

'

How.Many.Observations = 12

Top.Row.Allowed = 1

Bottom.Row.Allowed = 25

'

' Value!() Will Hold The 12 Bar Values. 12

' Was Chosen For This Example Because It Spans

' One Year (I.e. Bars Represent Months). TOP%()

' will hold the top row on the screen to draw

' the bars.

'

Redim Value!(How.Many.Observations),Top%(How.Many.Observations)

'

' Read in from the DATA statement the sample

' values (called "Observations").

'

for a = 1 to How.Many.Observations

read value!(a)

next

'

data 132.3,532,53,123,433,86,445,335,122,134,505,234.74

'

' Some other sample values you may wish

' to draw. No matter what range the numbers

' are, the largest number will define how

' the bars will be drawn.

'

' data 10,20,30,40,50,60,70,80,90,100,110,120

' data 110,100,80,60,40,20,20,40,60,80,100,110

' data 999,1032,4343,4365,2033,2354,2335,2123,2102,325,3255,1212

'

' If you are using a direct screen writing

' utility such as QPRINT or FASTPRT, you'll

' want to convert the number into a string.

' Also, with the horizontal lines going across

' the screen, you'll not want leading or

' trailing spaces.

'

DEF FN INT.Value$(Value!)

defint a-z

'

' Round up value!

'

If Value! <= 32767 then Value! = cint(Value!)

'

' Find how long the string will be.

'

Span% = (len(Str$(Value!)) - 1)

'

' Convert number to string, and remove

' the leading space.

'

XX$ = mid$(str$(Value!),1 - (Value! >=0))

FN INT.Value$ = xx$

END DEF

'

' To avoid dividing by zero later,

' assign the variable HIGH# a negligible

' value. This means that if you try to

' graph all observations of zero, no

' error will occur.

'

high# = 0.02

'

' Find The Highest Bar, and put it's value in HIGH#

'

for Bar = 1 to How.Many.Observations

if Value!(Bar) > high# then high# = Value!(bar)

next

'

' Define the highest bar in terms of

' screen rows. This could be a very small

' number when the values being graphed

' are large. The largest bar will span

' the screen from Top.Row.Allowed to

' Bottom.Row.Allowed, minus 1 for the

' value labels, and all other bars will

' be scaled using PERCENT# to this largest bar.

'

Percent# = ((Bottom.Row.Allowed - 1) / high#)

'

' Place horizontal lines on the screen.

' You may not want these, however. The

' next FOUR lines of code may be removed

' without causing problems elsewhere.

'

color 13,0,0

for row = Bottom.Row.Allowed to Top.Row.Allowed step -2

Locate row,2,0,0,0

print string$(78,196);

next

'

' Draw the observations. Start The Loop.

'

for Bar = 1 to How.Many.Observations

'

color 10,0,0

'

' Define each value as a subset of the

' largest.

'

XX% = (Value!(Bar) * percent#)

'

' Convert to screen row value.

'

Top%(Bar) = Bottom.Row.Allowed - (xx - Top.Row.Allowed)

'

' Calculate the column on the screen.

'

col = (6 + (Bar - 1) * 6)

'

' Start at the highest row of the bar and

' fill down to the lowest row allowed.

'

for row = top%(Bar) to Bottom.Row.Allowed

'

' If the value is so small compared to the

' largest, it may be too small to draw on the

' screen. This much be checked for.

'

if row > 1 then

Locate row,col,0,0,0

'

' Print the bar. The characters may be changed

' of course to fit your particular needs. I've

' included some "commented-out" samples of

' different characters: to try them, put a

' squote in front of the first line, and remove

' the squote from the line you'd like to try.

'

print string$(4,219);

'print string$(4,178);

'print string$(4,176);

'

end if

next

'

' If you do not want the values printed at

' the top of the bar, remove the next FIVE

' executable lines that follow.

'

' Find the row to place the number.

'

Row = (Top%(Bar) - 1)

'

' If the bar is so small that the number

' would be placed lower than the bottom row

' allowed, place it on the bottom row allowed.

'

if Row > Bottom.Row.Allowed then row = Bottom.Row.Allowed

'

color 12,0,0

Locate Row,Col,0,0,0

print FN INT.Value$(Value!(Bar));

next

'

' Pause for any key press. We're done!

'

while inkey$ = ""

wend

THERE'S NOTHING NEW UNDER THE SUN, BUT THERE ARE LOTS OF OLD THINGS WE DON'T KNOW. - Ambrose Bierce

CHARACTER IS MUCH EASIER KEPT THAN RECOVERED. - Thomas Paine

NOTHING YOU CAN'T SPELL WILL EVER WORK. - Will Rogers

I THINK TO MYSELF HOW MANY EXERCISE THEIR BODIES, HOW FEW THEIR MINDS. - Seneca

ITS NEVER SAFE TO BE NOSTALGIC ABOUT SOMETHING UNTIL YOU'RE ABSOLUTELY CERTAIN THERE'S NO CHANCE OF ITS COMING BACK. - Bill Vaughn

 

 

By P. Norton.

When we give DOS a command, such as FORMAT or CHKDSK, it has to find the program that will carry out that command. Several of the most fundamental commands, such as DIR and DATE, are built into COMMAND.COM. These are called the internal commands. If the command that we've asked DOS to perform is internal, DOS's command interpreter has the program that's needed right at hand, so it looks no further.

If DOS doesn't find a command in its internal table, then it looks on disk for a command file (a file with an extension of COM, EXE or BAT) with the same name as the command we entered. Here is where DOS 2.x is different from DOS 1.x. DOS 2.x allows us to use the PATH command to look in several different places for a command file. The PATH command lets us instruct DOS to hunt for our command files in as many places on disk as we want. Without a PATH command, DOS looks for a command where it has always looked, in the current directory of the current drive.

Suppose we have a PC with a drive C configured. We might keep many programs, particularly DOS programs like CHKDSK, all in one directory. Let's say the programs are kept in a directory named PROGS; the full path name to PROGS would be C:\PROGS.

Ordinarily, if we are working in another directory, we wouldn't be able to get to our programs. But if we entered a PATH command, we can tell DOS to look to our PROGS directory:

PATH C:\PROGS

Once the PATH command is entered, DOS will keep track of it and look to the directory we've specified for command files. If we've switched our current directory somewhere else, DOS will still be able to find and execute any programs in the PROGS directory.

This operation works even if we've switched the current drive. Say we wanted to work with a diskette for a moment, and we've switched out current drive to the A: drive. With the PATH command show above, DOS will still be able to find and use all the programs in our PROGS directory.

To make sure that the PATH command works right, it's important to specify carefully the full pathname of the directory including its drive letter. Suppose we'd left this part off in the previous example, so that the PATH was just \PROGS. When we switched our current drive to A or any other drive, DOS would search for a PROGS directory on that drive, since the PATH command didn't specify which drive to look at.

There's even more power to the PATH command. We aren't limited to telling DOS to search a single directory path -- we can give lots of paths in the PATH command. To do this, we just list all the directory paths we want DOS to search separated by semicolons, for example, two directories:

PATH C:\PROGS;C:\OTHERS

After we enter that command, DOS will go looking for commands in both directories in the order we gave them. In this example, DOS will search the PROGS file before it searches OTHERS. As soon as it finds the command program we've asked for, it will run it.

We can put lots of paths in the search if we want to. Although I don't think that it's a good idea to scatter programs through a bunch of directories, if your programs are scattered you can still use them all conveniently by setting up a PATH command that tells DOS to look through all of them.

Another use of multiple paths is that the paths we tell DOS to search can be on different drives. This turns out to be one of the best and handiest uses of the PATH command.

While we might not have our programs spread out in several subdirectories, we might have them in several different drives. There are lots of good reasons for doing this. For example, if you use a RAMdisk, you could load your most frequently used programs into the RAMdisk and use the PATH command to have DOS try to find programs there first. If your RAMdrive is drive C and you usually use a disk in drive A for any programs that aren't loaded into the RAMdrive, the PATH command you'd use is:

PATH C:\;A:\

With that PATH, DOS will check the RAMdrive first, and then the A: drive.

Before DOS searches through any directories that we've asked it to search with the PATH command, it searches through the current directory in the current drive. This has two practical results. First, there's no need to put our current directory into the search path. DOS will look at the current directory anyway; putting it into the path will just make DOS search there twice and slow things down. Second, since the current directory is searched first, we can't use the PATH command to override any programs in the current directory. If you have a program in the current directory, but you want to use another version of it in another directory you'll have to give it another name, because DOS will use the copy of the program in the current directory before it looks elsewhere.

 

 

Any of the programmes listed below may be ordered from the Joint Software Exchange, 73 Highway, 7975 Fish Hoek. Club members pay R 10 per volume (floppy disk); non-members are charged R 14; add R 3 for 3" media. These fees cover media, admin, advertising, operating expenses, overheads and library maintenance costs. In addition, a fixed order fee of R 4 is charged per order. For every 8 disks paid, 2 additional disks can be ordered free of charge.

3402 FRACTURED REALITY. Another excellent arcade game where you as Captain Comic comes to the rescue of the universe. VGA & HD

3403 DARK AGES: the Prince of Destiny. Destroy the warlord and claim your rightful place on the throne. Superb EGA/VGA graphics, high-speed animation and fast scrolling. 286+ required

3404 DANGEROUS DAVE & SPACE INVADERS. Two classic arcade games, best run on EGA/VGA although space invaders will run on CGA

3405 CD-MAN. Stunning PacMan-like game with superb graphics: beautiful playing field and sprites.

3406 & 3407 COSMO'S COSMIC ADVENTURE: the forbidden planet. Superb arcade game from Apogee with unbelievable graphics, animation and fast action. HD

3408 The LAST HALF of DARKNESS. The sequel to the Lost Half of Darkness [2674], this is another amazing EGA+ graphics adventure game with 80 rooms and more strange creatures.

3409 STARGOOSE destroy the mother base, the final frontier and ... may the Force be with you! Like Zaxxon but better?

3410 BOLO a graphical game of logic. Test your intelligence in a fun, arcade-type environment. EGA

3411 & 3412 ENGINEERING JONES. A high quality and original graphics adventure game. Nice! HD & EGA

3414 CRUSHER. Addictive and graphically attractive strategy block game.

3415 TETRIS look-alikes. A couple of clones and/or improvements of the well-known Tetris/falling blocks arcade game: COLUMN & DOUBLELINK. CGA/VGA

3413 HELLTRIS 3-Dimensional Tetris. A very challening and fun three-dimensional implementation of the blockbuster "Tetris" (falling blocks) arcade game. Supports any graphics card.

3416 QUATRIS PRO v2. A math edition of Tetris - the ultimate brain game. EGA/VGA

3417 APOGEE's arcade games. Collection of the following classics. JUMPMAN: diffuse neutronic technobombs on Saturn; PHARAO'S TOMB: raiders of the lost tomb; ARCTIC ADVENTURE: nice graphic adventure.

3418 ROLLERBALL arcade. Roll & guide your robot ball around obstacles across 26 different, increasingly challenging three dimensional landscapes (or create your own). CGA/EGA

3419 SPACE MINER. Go and mine space rocks but beware of comets, space patrol and the Vacuum Mulcher. Fast arcade with 3 levels. EGA

3420 VGA ARCADE GAMES. 4 challenging games: JOUST (gladiators & ostriches?!), GOFERPOP, GUZZLE (drinking game) and ALIEN WORLDS (kill as many aliens as possible). 2 need a mouse

3422 SANDIEGO-POLY. Computer-based but enhanced version of the monopoly board game. PC can play as opponent. Beautiful graphics. (Also: RUMMY card game). EGA/VGA

3423 CONCENTRATION. Fun & challenging "match the colourful cards" game. Different difficulty levels to make it challenging to young & old. VGA

3424 THE WALL & VORTEX. 2 beautiful, intellectually challenging games that work on any PC. Wall: try to beat the PC (difficult but possible) when Tearing-down-the-wall. Vortex: trap as many tornadoes as you can.

3425 ORION ODYSSEY. Graphical arcade space game: destroy aliens, collect artifacts, monitor life & fuel status. VGA

3426 SQUIRREL, DEFCON & ALIEN WORLDS. Surreal view of outer space. VGA & Mouse

3427 HEAVY BARREL. Fast action arcade game: blast away the baddies. CGA/EGA & HD

3428 MARBLEMAN. Arcade strategy game. Also includes JUMPJET. EGA

3429 PUZZLE PICTURE. The ultimate, intelligent puzzle maker. Build large or small puzzles etc. VGA

3430 WHATSIT? Concentration/memory game using matching cards. EGA+

3431 VIRTUAL REALITY demo. Walk around an office complex in this 'virtual world' demo of Superscape. VGA

3432 FALLING FACES. Position falling pieces of peoples' faces to form pictures. CGA/VGA

3433 BALLISTIX. Novel arcade game which tests your reaction speed. Very fast-paced! CGA/EGA

3434 ULTRA-SLOT gambling slotmachine. Fully customizable 3, 4 or 5 reel machine with slectable pictures and payoffs. VGA & mouse

3435 BLACKJACK v2.2 tutor & game. Your key to winning casino play. Teaches you how to beat the dealer at blackjack (or "21"). Customizable rules. VGA or Hercules

3436 BRIDGEPAL. Learn, practice and play bridge.

3437 The BATTLE for ATLANTIS. Strategy RISK-like game where you must conquer all 8 islands of Atlantis pitting your 'Olympics' army against the Calydonians, Argonauts and Titons.

3438 BIG2 oriental board game. Has the 'avant-garde' of chess and the 'finesse' of bridge. Windows-like interface. EGA/VGA

3439 APPLES & ORANGES strategy game. Othello-like board game but with fruit instead of B&W. 1 or 2 players; 3 levels of play; undo; hints; ... Marvellous graphics. EGA/VGA + mouse.

3440 ARMY BATTLE SIMULATOR. 2-player. Capture the enemy flag whilst protecting your own. Various terrain types etc. VGA & mouse

3441 MINER & PLOTZ. In this VGA adaptation of MINER you have to go in search of rare metals: silver, gold or platinum; whilst facing various dangers. PLOTZ is a CGA strategy board game.

3442 NINE MEN'S MOVES. In this ancient strategy game you try to beat the computer in getting 3 pieces in a row on your board.

3443 RAILROAD SWITCH CHALLENGE. Move railroad freight cars along simulated tracks & industry loadlines to subsequently assemble a laden departing mainline freight train.

3444 CIPHER & VGA-XWORD. CIPHER is a nice system to solve crypto-quote puzzles (mono to VGA). XWORD is a Crossword system for VGA.

3445 FAIRY GODMOM. You're on a mission to free 50 fellow fairies, armed with your magic wand of transformation. 50 levels; killer crabs; dimensional implosions. CGA/VGA

3446 The PALACE of DECEIT. A nice graphics adventure game. EGA

3447 3 VGA graphics ADVENTURES. Dungeons of Silmar (labyrinth); Dunjax (astral explorer with crashed spaceship); Navjet (destroy enemy nuclear weapon).

3448 T-ZERO poetic adventure. Text adventure game with 'literary leanings'. Right the troubled times by locating objects across time & space.

3449 QUEST-MAKER 2.1. Create your own GRAPHICAL adventure games quickly and effectively. Requires a PCX compatible graphics editor (e.g. disk 3554 or PC-Paint) & VGA/EGA.

3450 DC-WORLD. Another development system to create GRAPHICS ADVENTURE games with minimum effort & time. Up to 1000 settings & 500 objects/beings. CGA

3451 HUMBUG. Highly rated text adventure game with the most delicious & marvellous descriptions.

3452 TOWN OF ZZT. 'Object-Oriented Programming'-based action adventure game. 43 game boards filled with creatures & puzzles. You need fast reflexes as well as brain power. Delicious mono graphics board works on any PC. Recommended!

3453 MAZE-QUEST. Swordsmarkship & magic are essential to survive the dire monsters & evil beings stalking the maze. Another a"maze"-ing graphical board adventure.

3454 FUNNY FACE CREATOR. Creative graphical amusement for kids allowing them to compose ordinary & funny cartoon-like faces by selecting the various parts (hair, eyes, ears...) from extensive body part "libraries". Great fun for kid & parent! CGA/VGA

3455 MYNAME & RUNAWAY kid tutorials. MYNAME teaches young kids their own name & address. RUNAWAY teaches the location of the letters on the PC's keyboard in a fun way. ROCKY'S HEADACHE helps kids learn their schoolwork through making multiple choice tests out of it.

3456 WUNDERBOOK! 5 colourful and fun educational games for 3 to 10 year olds. Very child-friendly interface. Learn & explore objects, numbers, alphabet, words, shapes & languages. Great graphics & menu. CGA+

3457 YOGI BEAR Maths. Excellent use is made of Yogi Bear's popularity to bring a game element to these single digit addition problems. Beautiful graphics. EGA/VGA

3458 BABY-KEYS 1.10. For children to 2 years old who find the PC & its keyboard irresistable. It produces a wide variety of sounds & graphical images with each key being hit.

3459 FASTSTART. Active program using ears, eyes & hands through practising to learn basic computer & maths skills. ABC song; fun letters, fun counting, telling time, music and maths operations.

3460 JULIA'S LETTER PROCESSOR. A toddler's introduction to computer-writing. 2-line huge letter display with accompanying note from the alphabet song. 2-4 years. Also includes the classic big-letter "Word Processor for Kids" (CGA) for kids 4-10 years.

3461 KINDER MATH 2. Colourful math helper for ages 4 to 10. 3 levels from 1 to 3 digit problems. With sound!

3462 FUN WITH DESIGNS. Lets young children create their own designs in a fun way, quick & easy. Works very well together with disk 1897: "Fun with Letters and Words". EGA & HD

3463 & 3464 The T.Salvi Educational Collection. Various more or less educational programs for adults & teenagers. Includes single player business game, guess the number, increase your typing speed, multiplication, solitaire-type draughts, reverse numbers etc.

3465 CALCULUS I & BUSINESS CALCULUS. Comprehensive revision & computer-based testing program for Calculus I and/or Business Mathematics. Essential preparation for prospective or consolidation for existing science & business students.

3466 & 3467 CALCULUS II & III. Follow-up on Calculus I for testing & reinforcing the more advanced aspects of calculus.

3468 GEOMETRY TUTOR & MORAFF'S MATHER. Excellent tutor/test program for the basic geometric concepts. Mather reinforces arithmetic calculation skills + - x

3469 MATH HAPPY. Teaches colourful integer maths to pre-schoolers. Very easy interface. EGA & mouse

3470 MATH MULTIPLICATION TUTOR. Teaches multiplication in 3 stages: a) watch the computer do it; b) try it out yourself; c) practice. Also includes worksheet generator for additional "paper-and-pencil" exercises.

3471 LONG DIVISION TUTOR. Teaches long division, also to students who don't know their multiplication tables. Also includes MATH MASTER v3.01 (AT only) with math drills for ages 8+.

3472 MATH CLASS 1.1. Graphically oriented (screen looks l