IDEflS
FOR USE
ONYOUR
COMMODORE
warn
)
■ ■- ■- r t ■: g
# ,^ ;' ^ r»
s ■■■■/ /
\
/ /
///M >u'\ By Ranier Bartel
YOU CAN COUNT ON
IDEflS
FOR USE
ON YOUR
COMMODORE
BY: Ranier Bartel
A DATA BECKER BOOK
Abacus Hi Software
P.O. BOX 7211 GRAND RAPIDS, MICH. 49510
First English Edition, October 1984
Printed in U.S.A. Translated by Greg Dykema
Copyright (C)1984 Data Becker, GmbH
Merowingerstr. 30
4000 Duesseldorf W.Germany
Copyright (C)1984 Abacus Software, Inc.
P.O. Box 7211
Grand Rapids, MI 49510
This book is copyrighted. No part of this publication may
be reproduced, stored in a retrieval system, or
transmitted in any form or by any means, electronic,
mechanical or otherwise, without the prior written
permission of DATA BECKER or ABACUS Software.
ISBN 0-916439-07-0
Foreword
What can you really do with a Commodore 64? Many users
ask this sort of question after the initial excitement of
the purchase has worn off.
Rainer Bartel attempts to answer this question in his
book by showing you numerous applications for the '64. The
spectrum goes from file management to music programs, from
diet to jogging programs. In fact, one of these applica
tions has proven very useful to Rainer. The original
manuscript for this book was completed using a wordproc-
essing package—TEXTOMAT—on the '64, and printed on an
EPSON LQ 1500.
The best part, aside from the comprehensive informa
tion, is that this book is interesting and easy to read,
something which cannot be said about many computer books.
Have fun while reading.
Duesseldorf, June 1984
Table of Contents
0. Get your 64 out of the corner 1
1. Getting to know each other 3
1.1 What can the C64 really do? 6
1.2 Storing data 10
1.3 Printers 13
1.4 No software, no use 16
1.5 Television or monitor? 21
1.6 Helpful hints 23
2. Basic recipes 26
2.1 Word processing 28
2.2 Calculating and planning 38
2.3 Storing and sorting data 46
2.4 Music 56
2.5 Painting, drawing, and designing 57
2.6 Do-it-yourself programming 61
3. Writing and printing 67
3.1 Party invitations 68
3.1.1 A simple address file 69
3.1.2 A simple word processor 77
3.2 The professional thesis 84
3.3 Form letters 93
3.3.1 Multifunctional customer file 95
3.3.2 A variable text file 98
3.3.3 Bringing text and data together 103
3.3.4 Conclusion 104
4. Computations and planning 106
4.1 Household bookkeeping - Hints for designing
your own system 108
4.1.1 And this is how it looks in practice 114
4.2 Figuring auto costs 122
4.3 How high will the monthly payments be? 139
4.4 First, second, or third? 148
4.5 A calculator, too 160
5. Data of all types 165
5.1 Recipe file for hobby cooks 167
5.2 Getting organized in the deep freezer 173
5. 3 Vegetable garden calendar 177
5.4 Inventory management for a small company 179
5.5 Your personal health records 182
5.6 It doesn't make any difference
what you collect 185
5. 7 Hobby photography 193
5.8 Jogging 196
5.9 Electronic diet plan 198
5.10 An intelligent dictionary 211
5.11 Literature data bank 223
Abacus Software IDEAS TO USE ON YOUR C-64
0. Get your 64 out of the corner
Do you recognize the following dialog?
"So, why did you buy a computer?"
"Well, I want to use it to store all my addresses and I
can use it for my studies. The games aside, there are all
sorts of things I can do with it."
"You spent hundreds of dollars just to do that? What a
waste!"
"Well, the way I see it, you just can't get by without
a computer these days."
"Hmmph. You certainly won't catch me blowing my money
on such a contraption."
Many conversations between computer owners and computer
skeptics take place like this. If you happen to be in the
uncomfortable position of having to justify your purchase
of a C-64, you can quickly run out of things to say.
Of course you know very well how you are going to use
your Commodore 64, don't you? Do you belong to that rather
large group of impulse buyers that later put their comp
uter under someone else's Christmas tree or to the group
who is tired of just playing with their video games?
Let's try a little test just to see.
- 1 -
Abacus Software IDEAS TO USE ON YOUR C-64
*********************************************************
* How do you most want to use your C64? *
* *
* 1. Only for games YES/NO *
* 2. For hobbies YES/NO *
* 3. In the household YES/NO *
* 4. Professional or business Use YES/NO *
* 5. To be able to understand *
* computers better YES/NO *
* *
***************************************
If you answered question 1 with NO, then you're in the
right place, particularly if you answered more than one
other questions with YES. If, however, you want to use
the computer primarily as a toy, then you should trade
this book in for a game cartridge (assuming your dealer
will go along with it.)
To make our point clearer: In this book you will find
information about serious, useful applications that can
even save you money. So get your '64 out of that corner!
- 2 -
Abacus Software IDEAS TO USE ON YOUR C-64
1. Getting to know each other
Good morning. My name is Rainer Bartel. I am standing
here on the starting line of the great computer race,
ready to bring you a whole pile of new ideas. Before we
get started however, I must get a chance to know you a
little better, otherwise we'll never get a chance to
really get moving.
The following questionnaire, by the way, is also int
ended to help you get to know yourself a little better.
Perhaps you have never really given any thought to what
you actually want to do with your computer. Once you
finish the questionnaire, you'll know more.
So, on your mark, with pen in hand. The game begins.
**********************************************
* *
* Questionnaire *
* *
*********************************************************
*********************************************************
* Your hardware Configuration? *
* 1. Commodore 64 YES/NO *
* 2. Datasette (cassette recorder) YES/NO *
* 3. Floppy disk drive VIC 1541 YES/NO *
* 4. Second or third disk drive YES/NO *
* 5. Monochrome monitor YES/NO *
* 6. Color monitor YES/NO *
* 7. Dot matrix or daisy wheel printer YES/NO *
* 8. Plotter YES/NO *
*********************************************************
- 3 -
Abacus Software IDEAS TO USE ON YOUR C-64
Now you can begin with the first evaluation. But don't
worry, you don't even have to turn on your '64.
NO YES ANSWERS : You should read this book from cover to
cover. First, you'll learn about the fantastic possibili
ties of the Commodore 64 and also about its limitations.
Second, you'll find many stimuli for future applications
of your system. You can also skip over the rest of the
questionnaire.
ONE YES ANSWER : That's strange. Either you picked up a
peripheral real cheap which is now waiting for a computer
or your '64 is still standing alone somewhere. My recom
mendation: First expand your system and then read further.
TWO OR THREE YES ANSWERS : You already own a system with
which you can do many interesting things. There is also
something in this book for you. My tip however: You should
read section 1.2 and following, after which you'll prob
ably seriously consider expanding your system.
MORE THAN THREE YES : Very good. You already have the most
important things together. You should now answer the ques
tions in the second questionnaire and then we can talk
some more. In any event this book will help you also.
- 4 -
Abacus Software IDEAS TO USB ON YOUR C-64
* *
* Your software library *
* *
* 1. Cartridges only YES/NO *
* 2. Commercial programs on cassette YES/NO *
* 3. Programs you have written YES/NO *
* 4. Word processing software YES/NO *
* 5. Data management (data base) software YES/NO *
* 6. Bookkeeping software YES/NO *
* 7. Business accounting software YES/NO *
* 8. Graphics or synthesizer software YES/NO *
* *
Evaluation: If you didn't answer YES to any of these
questions then something is wrong. Either you don't have a
C-64 or you use it only as an ornament. But jokes
aside
ONE YES ANSWER : You have a computer and are beginning to
ask yourself what you can actually use the thing for.
Buying this book was a step in the right direction. Read
section 1.4.
TWO YES ANSWERS : Your software library has one or more
ready-to-run programs. It should be expanded. Refer to
sections 2.1 through 2.5 for information on what types of
software your should purchase.
THREE OR MORE YES ANSWERS : Your selection of software is
quite professional. It may be that you just need a couple
of ideas for new applications. Please help yourself!
- 5 -
Abacus Software IDEAS TO USB ON YOUR C-64
Good. Now we have gotten to be friends as far as our
common areas of interest are concerned and possibly you
have even been able to get used to my style of writing. If
not, you are going to have bear with it for another 200
pages or so.
1.1 What can the C64 really do?
It would be very boring indeed to simply list the
technical specifications of the '64 here. You can get that
information out of the user's guide. What would be inter
esting, however, is to see how these specifications apply
to daily life. To this end we are going to have to take a
brief look at the insides of our computer. (* Note: tech
nical experts please go immediately to the end of the
chapter and read the paragraph there.) As the name im
plies, the memory capacity of your Commodore is 64 KB
(kilobytes), a large portion of which is required for
internal processing. You can see this when you turn on the
machine and get the message
"64K RAM SYSTEM 38911 BASIC BYTES FREE"
Approximately 39k bytes are available for BASIC programs.
Let's take the theoretical case in which all memory
positions are occupied by a letter or digit. In this case
you could put approximately 15 pages of text in the unused
storage of the C-64. Admittedly, not a lot. On the other
hand, our example is not very realistic. In the first
- 6 -
Abacus Software IDEAS TO USE ON YOUR C-64
place you wouldn't be able to do anything with the stored
text because no space would be available for a program
which would process the information. Secondly, there are
external storage media available, without which a computer
is as good as useless. We'll say more about this later.
You might perhaps ask yourself what is actually cont
ained in the other 25,000 storage positions. That is where
the clever engineers and programmers have placed the
things which give the '64 all its fantastic capabilities.
The first thing there is the BASIC interpreter, which,
as the name implies, interprets or translates something.
This portion of the system always has a lot to do when
programs written in BASIC are running. BASIC stands for
Beginner's All Purpose Symbolic Instruction Code. This
language is well adapted to human and in particular the
English language The problem is that the brain of the
computer, the central processor, doesn't understand a word
of BASIC. More exactly, it doesn't understand any words or
letter, only digits. Not only that, but it knows only 2
digits: 0 and 1. This means that each command or instruc
tion which the CPU (Central Processing Unit) is to execute
must be represented with combinations of these two digits.
But don't be afraid when you sit down in front of the
keyboard—you're permitted to do more than press 0 and 1.
That was taken care of in advance. Not even the engineers
that built the C-64 had to use this level of language.
That difficult work was taken care of during the develop
ment of the central processing unit. The CPU is capable of
following machine language commands—the code which the
processor understands.
- 7 -
Abacus Software IDBAS TO USB ON YOUR C-64
Later, when you understand a lot more about computers
and are really interested, you can learn to program your
'64 in machine language. You'll be amazed at the speed at
which programs can be executed in machine language. But
now back to the BASIC interpreter. This interpreter is
responsible for telling the CPU what you want it to do
when you issue certain BASIC commands.
The interpreter occupies approximately 8 Kbytes, ap
proximately the same amount space that the operating sys
tem of the C-64 takes up. "What does all this mean?" you
might ask. The answer is simple: Nothing will run without
an operating system. The '64 relies on the operating
system to tell it which key you have pressed or which data
should be read from the diskette. It also wouldn't be able
to write information to the monitor or print anything on
the printer.
Two of the really big pluses of the C-64 certainly lie
in the areas of graphics and music. A thorough discussion
of these capabilities is beyond the scope of this book. We
will, however, touch upon one or more programming ideas in
these areas. We must also recognize the limits as far as
ease of use is concerned; if you really want to use every
thing that the machine offers, it is necessary to use a
plethora of PEEKs and POKEs. Many people would rather
purchase finished software to do these things.
We have already spoken about the storage capacity of
the Commodore 64 but now need to say a little more. It's
capacity is ample for most applications. You should of
course not get the idea that you can do all of the data
- 8 -
Abacus Software IDEAS TO USE ON YOUR C-64
processing of a medium-sized company with such a computer,
a couple of diskette drives, a good printer, and a little
software. This is simply not the case. On the other hand,
if we take a self-employed painter as an example, then the
•64 is capable of eliminating or taking over a large
amount of nerve-wracking and time-consuming work.
The memory capacity is more than adequate for household
use, provided an external storage device such as the 1541
disk drive is used. The system is then capable of managing
a phonograph collection file of say 500 titles without
difficulty.
If you want to believe the public opinion polls on home
computers, then a large portion of computer users use
their devices for games. As the performance of reasonably
priced computers increases, there is an enormous improve
ment in the quality of games for them, not only in sound
and color but also in the content of the games themselves.
At one time, only black and white "Pong" games or simple
"shoot 'em up" games were possible. Now fantasy games are
available which are so cleverly made that the player can
transport himself or herself to a fairy-tale world and
attempt almost insoluble puzzles. The C-64 offers all the
prerequisites for enjoying such leisure-time fun.
Take the step from being a passive player to an active
game designer. You might discover a new creative hobby.
You can find some hints and suggestions in the last sec
tions.
- 9 -
Abacus Software IDEAS TO USB ON YOUR C-64
*) Remarks:
If you already know what happens inside the integrated
circuit chips in a computer then you should read the
following section knowing that the descriptions are as
both somewhat inaccurate and incomplete. I believe that no
beginner is helped by being told what RAM/ROM overlapping
is or what the architecture of a CPU is. Anyone who ser
iously studies the machine will sooner or later become
interested in its architecture and can then read any of
the standard books on the internal workings of the 64.
1.2 Storing data
What data you want to store naturally depends on the
type of program you are using. The internal storage of the
C64 is adequate for small applications using a limited
amount of data. But what you are going to do if you want
to keep track of your color slide collection of over 200
boxes? "No problem," you say. "I'll just use my datasette
for data storage and I'm all set." And you're right.
One thing is quite clear. An external storage medium is
absolutely necessary, not only to store data but also to
programs which you write yourself, since everything in
memory is lost when you turn the computer off. In most
cases, you will use special data cassettes with your data
recorder. These cassettes, in contrast to music cassettes,
have only 5, 10, or 20 minutes of playing time on each
side. It is recommended that only one programs (including
- 10 -
Abacus Software IDEAS TO USE ON YOUR C-64
data) be stored on each side. The reason for this is easy
to see. Data cassettes can only be read sequentially, that
is, from beginning to end. This means that if the data
which we are looking for is at the end, we have to read
the entire tape before we can get to it.
The only way to get around this problem is through very
clever use of the features of the C-64. It is, of course,
much easier to work with a floppy disk from the very
beginning.
Ease of use is not everything. Of perhaps greater value
is the large storage capacity of a diskette. On a Commo
dore VIC-1541 disk drive you have 170 Kbytes of storage
available. Remember our storage capacity example from a
previous chapter in which 38 KB was only 15 pages of text?
You can place almost 5 times as many pages on a diskette.
The entire text of this book would require only 4 disk
ettes.
Another very important (to many, the most important)
reason for using a disk drive is the much higher access
speed. This access speed is so much higher than that of a
cassette in part because a diskette has more direct access
to all the stored information. For the time being this
applies only to programs. All data are stored on 35
tracks, which are further divided into sectors. Each sec
tor on every track has its own name which is entered into
the directory of the diskette. This name ensures that the
entire diskette does not have to be read when searching
for a particular program.
So there are three very important reasons why you need
- 11 -
Abacus Software IDEAS TO USB ON YOUR C-64
a disk drive (and later a second drive). Such a storage
medium is an absolute requirement for professional use of
the C64 and the VIC-1541 is reasonably priced at around
$250.
- Ease of use
- Capacity
- Speed
are the major advantages of a disk drive.
If these arguments haven't convinced you, the ideas in
the rest of this book certainly will!
- 12 -
Abacus Software IDEAS TO USB ON YOUR C-64
1.3 Printers
When you take the first step in the direction of a word
processing or data management program, the question of a
printer becomes very important since even the best address
list program is of little value if it outputs only to the
screen. For writing, some type of print-out device is a
necessity. You might say that this is much too expensive.
But let's take a look at the following simple example.
Let's assume that you own a C-64 and an external stor
age device. Let's further assume that your old typewriter
is about ready for the museum and that you wish to pur
chase a new electric typewriter. Both assumptions are
realistic. You then have two alternatives: a modern elec
tric typewriter which costs between $300 and $450 or a
printer which can be used with your '64 and which costs
around $300. As a plus you are also getting something with
which you can list the directories from your diskettes and
which is also capable of printing some graphics.
The choices of a disk drive for the C-64 are very
small, but the choices for a printer are enormous by
comparison. If we just take the most popular devices into
account we still have a choice of about ten printers with
different capabilities from which to choose.
-print quality
-speed
-graphics capability
- 13 -
Abacus Software IDEAS TO USB ON YOUR C-64
These are the most important criteria when purchasing a
printer. In addition, the applications for which the prin
ter will be used must be taken into account.
Let us take the most important possible choices one by
one:
VIC-1525/MPS-801. This printer is sold as a companion for
the Commodore 64. It is relatively inexpensive and gives
fair quality output. It has a true dot-addressable graph
ics mode and produces readable text.
VIC-1526. The universal printer. This printer is also a
companion for the C-64. It came on the market as wthe
printer" for the C-64 and because of many problems, had to
have a new operating system installed. Since that time it
can now be recommended because of its excellent
price/performance ratio. It is not a true graphics printer
and it not widely supported as such. It has somewhat
better print quality than the VIC-1525.
EPSON RX/FX-80. The best looking. This printer not only
has the best design (admittedly, a matter of taste) but
also has exceptionally good print quality for a dot matrix
printer. It is also fast and relatively quiet. Unfortun
ately it is not easy to use all of its 63 (!) print style
combinations when it is attached to the C64.
VIC-1520. The plotter. This type of device has no print
needles and no daisy wheel. It writes with 4 different
colored pens selected through software. The advantage:
lines are really drawn as continuous lines and not as rows
- 14 -
Abacus Software IDEAS TO USE ON YOUR C-64
of points. Anyone who wants to make full use of the C64's
graphic capabilities should consider purchasing a VIC-1520
(perhaps as a second printer).
There are, of course, many more printers but these are
the most commonly used in connection with the Commodore
64. In particular, we have not mentioned any daisy wheel
printers. These tend to cost significantly more than dot-
matrix printers but are now coming down in price. If you
need letter-quality (typewriter-quality) output, you
should investigate current low-cost daisy wheels now on
the market.
- 15 -
Abacus Software IDEAS TO USE ON YOUR C-64
1.4 No software, No use
Every home computer owner needs software. We are al
ready aware of that. The difficulty lies in the manner in
which we will acquire programs for our various applica
tions. There are three major alternatives:
1) Develop the program yourself
2) Type in a program from a magazine or book
3) Purchase finished software
The decision as to which of these alternatives is best
is difficult since such a decision is based on the person
al requirements of the user. In addition, these three
areas are not totally independent of each other. Let's
look at each in detail.
Develop the program yourself
As you become familiar with BASIC, you'll begin writing
short programs to test you knowledge of the language and
capabilities of your computer. Your first programs will
probably be short—no more than 10 or 20 lines per prog
ram—and you'll be very happy if the computer does what
you wanted it to.
Your expectations will soon rise, however. If you still
feel motivated to continue to write programs yourself,
- 16 -
Abacus Software IDEAS TO USE ON YOUR C-64
you're probably well on your way to becoming a BASIC
programmer. No one can develop super programs completely
in a vacuum. You'll require information and ideas from
books and computer magazines as well as from other comp
uter hobbyists and computer clubs. Many of the well-known
programs were, however, developed in the living rooms of
amateur programmers. There is always the danger that you
will begin to program for the sake of programming and
that the actual application will fall by the wayside.
Type in program listings
You can always type in programs listings that are
printed in books and magazines. Some such listings are
written for "generic" computers and others may require
changes to run on your '64. The amount of programming
knowledge to make these changes is slightly less than if
you had written the program yourself. There are two rea
sons for this. First, BASIC is a language with many dia
lects. The command to PRINT text on the screen at a cer
tain location differs for most home computers. If you wish
to take a good program that was written for an ATARI and
translate it for the '64, then you will have to inspect
the program line-by-line looking for these PRINT commands.
Second, many programs use PEEKs and POKEs. It becomes very
complicated to translate these commands into equivalent
ones for the '64. It may be well worth the effort to
translate these programs, but the translation involves
considerable effort nonetheless. There is no reason for
every computer fan to reinvent the wheel and there also is
- 17 -
Abacus Software IDEAS TO USE ON YOUR C-64
no reason not to use other ideas in this particular case.
If you stick with magazines which deal only with the
Commodore 64, you can of course avoid these problems.
Collections of programs can be found in many different
forms. If you do not wish to directly use a program, you
can have the chance to learn from the experience of others
by studying them. But be careful. Published program list
ings sometimes contain printing errors which can cause
problems for the user.
Someone who has spent a weekend debugging such prog
rams will be much more inclined to purchase well-tested
software from a well-known software house the next time.
This of course brings us to the next point...
Purchase finished software
Anyone who must make a choice has a problem. The number
of programs offered for the Commodore 64 is practically
unlimited. Even if we ignore the game programs for this
discussion, there are more than enough titles to deal
with. There are word processing programs on diskettes,
data base systems on cassettes, and graphic tools in plug-
in cartridges, and the list goes on, and on, and on. How
can anyone decide which package is for him?
Give it a try with the following checklist:
- 18 -
Abacus Software IDEAS TO USE ON YOUR C-64
* *
* Checklist for purchasing software *
* *
* *
* A) Questions *
* 1) For what purpose will the software be used? *
* (see sections 2.1 to 2.6) *
* 2) Of which type of should the storage medium be? *
* - plug-in cartridge *
* - cassette *
* - diskette *
* 3) What is the maximum price which you will pay? *
* *
* *
* B) Check points *
* *
* 1) Study the software tests in the computer *
* magazines *
* 2) Watch software advertisements *
* 3) Pick out those products which might be of *
* interest *
* 4) Gather information about the software products *
* of interest from your local computer shop or *
* from the software house which offers the *
* products *
* 5) Talk to current users of the products *
* 6) Read the handbooks and user manuals on *
* the software *
* 7) Have the computer shop or software house *
- 19 -
Abacus Software IDEAS TO USE ON YOUR C-64
* demonstrate the product to you *
* 8) Compare prices *
* 9) If possible, test the product at home *
* 10) Repeat steps 1 through 5 if necessary *
* 11) Make final choice of software products required *
* 12) Take close look at service and support offered *
* by the company which is selling the software *
* -Can defective program diskettes or disks that *
* have been mistakenly erased be exchanged *
* either at no cost or for some small fee? *
* -Is there some type of telephone hot line *
* support that you can call to ask questions t
* about the operation of the software package? *
* -What type of maintenance plan is available to *
* ensure that your are able to receive the *
* newest version or release of the software - *
* either free or for some reasonable price *
* 13) Select the software seller who has the highest *
* cost/benefit ratio *
* 14) Purchase software *
* *
You probably won't go through this list from beginning
to end, particularly since many of the points were re
peated just to be on the safe side.
We're confident that you will exercise the same care in
choosing your software as you did in the purchase of your
Commodore. Also consider that a readable and easily under
stood user manual adds considerably to the success that
you have with any software product.
- 20 -
Abacus Software IDEAS TO USE ON YOUR C-64
1.5 Television or Monitor?
That might sound like a silly question but it isn't.
It's less of a question of preferences than a question of
how many bottles of eyedrops your pharmacist is going to
be able to sell to you. Of course, as long as you're not
really going to do any serious computing, your television
set will be lore than adequate. But first let's take a
look at all the different devices we can attach to our
computer:
-black and white television
-color television
-monochrome monitor (generally without sound)
-color monitor with sound
Just a few words about working with a standard tele
vision set: The principle disadvantages of using a tele
vision stem from the fact that the picture is created in
quite a different manner than is the case with monitors.
There is no way, for example, to get a satisfactory high-
resolution graphics and the picture is also often un
steady. With a normal television set, we have a case in
which the displayed pictures constantly change. One type
of picture has the visual information which we see and the
others are black. You eyes are then continuously being
confronted with alternating changes from dark to light,
even though you are not consciously aware of it. Eye
irritation and tiredness are the result.
- 21 -
Abacus Software IDEAS TO USB ON TOUR C-64
This problem cannot be entirely eliminated with the
available cathode-ray technology, but it can be drastical
ly reduced. It's no longer possible to argue that Monitors
are too expensive. A good monochrome CRT display device
can be purchased for slightly over a 100 dollars. Color
monitors with sound capability start at around 250 dol
lars.
The Coinodore 1702 monitor is one such color monitor
which is specially adapted for the 964. The '64 works best
with it because it has all the features that you need if
you wish to use all the capabilities of the C64, both
optically and acoustically.
There are of course many other monitors available and I
can't recommend one over the others. Your best bet in
choosing a monitor is to have your dealer demonstrate it
using a Commodore 64. Which monitor is right for you
depends very heavily upon the application for which you
intend to use it. The program ideas throughout the book
also contain information as to which equipment would be
the best for the particular application.
- 22 -
Abacus Software IDEAS TO USB ON TOUR C-64
1.6 Helpful Hints
Let's start with the most well known:
Joysticks and Paddles
It's not an exaggeration to say that anyone who has
used the keyboard of a computer also knows how to use a
joystick. We'll therefore save ourselves the long-winded
explanations of what they look like and how they are used.
For our purposes a joystick is only really of interest
if we can use it for something other than games. Even
then, paddles are sometimes the better device. Joysticks
and paddles can be used to select items from a menu.
Joysticks cost between 10 and 40 dollars each. Paddles
are, as a general rule, less expensive.
Lightpen and graphics tablets
The lightpen is an input device with many capabilities.
Depending on the software, you can use a lightpen to draw
directly on the display screen or, as is the case with
joysticks, select from a menu. Unfortunately, there is not
much software available to make use of light pens, and
good light pens typically cost 30 to 50 dollars.
- 23 -
Abacus Software IDEAS TO USE ON YOUR C-64
A graphics tablet is an input device (pointing device)
which offers the same sort of capabilities as a lightpen,
except that one draws or points on a surface other than
the screen. The KOALA PAD and the CHALK BOARD are two
such devices which may be used with the C-64. Graphics
tablets range in price from 50 to 100 dollars and are
typically no more well supported than lightpens, although
they often come with some type of drawing software. Both
lightpens and graphics tablets may be used by your own
programs, of course, and it is this aspect that we will be
dwelling on in this book.
Care and Maintenance
Do you have any idea what can happen when a dust part
icle gets onto a disk in the disk drive? No? Believe me,
it can cause a good number of problems.
In any event, you should try to do everything you can
to keep the dust particles from wreaking their havoc,
whether it be in the disk drive, in the printer, or any
where else for that matter. There are dust covers avail
able for all these peripherals, and you should consider
purchasing them. Diskettes should be stored in a dust-free
(lockable, if you so desire) disk box.
The only two devices which really require maintenance
are the disk drive and the printer. Once again, dust and
dirt are the culprits.
The read/write head of the disk drive needs to be
- 24 -
Abacus Software IDEAS TO USE ON YOUR C-64
cleaned from time to time because dust and dirt can col
lect there. A dirty read/write head can cause problems
during disk accesses and destroy several days of program
ming or data entry work. Simply put, an ounce of preven
tion is worth a pound of cure. Purchase head-cleaning
diskettes and use them regularly.
As far as the printer is concerned, the dust is created
internally to a certain extent. The small fibers, found
especially in the perforations of computer paper, are
shaken loose by the print head and paper feed and then
fall somewhere in the printer itself. There are no special
maintenance procedures for printers unless specifically
mentioned in your printer documentation. Aerosol cans of
compressed air (usually available in photography shops)
can be used to blow the dust out. Do not use these spray
cans in the areas where the electronics of the printers
are installed. The cleaning of these areas should be left
to maintenance technicians who should also handle the
repair of any defective equipment. A vacuum cleaner can
also be used if a small enough attachment is available.
- 25 -
Abacus Software IDEAS TO USE ON YOUR C-64
2. Basic recipes
If you've ever seen a good cook book, you may have
noticed that in the back there is frequently a list of
what are called basic recipes. In most cases, the recipes
for the culinary masterpieces in the main part of the
book are simply modified versions or combinations of these
basic recipes. Now as far as I am concerned, things are no
different in computing than they are in cooking: With
small changes and skillful mixing we can cook up 1000
programs out of the 3 or 4 basic applications. That is why
I chose to call this chapter "Basic recipes." These are
the basic categories:
-word processing
-data processing
-computations and calculations
-games
Games are really combinations of the first three points
plus sound and graphics, but finding the right combination
and successfully creating the audio-visual component is
itself enough of an art to rate a separate category. In
any event, it is definitely a different application.
In choosing ideas to program, I have tried to follow
the classification system outlined above. Only the chapter
on music, painting, and design strays from the other ideas
discussed. These are more or less a mixed form of the
basic applications.
- 26 -
Abacus Software IDBAS TO USB ON YOUR C-64
If you now have everything together—your C-64, your
1541 disk drive, your monitor, and your printer, plus a
couple of finished meals (such as word processing, data
management, or some other software) in the pantry, then
grab this cook book, and let's see if we can put together
a meal fit for a king. "Bon Appetit."
- 27 -
Abacus Software IDEAS TO USE ON YOUR C-64
2.1 Word processing
The term "word processing" is in reality not a very
good term to use to describe what is actually taking
place. Text processing would be a better description of
what actually takes place. Text can be defined as a set of
words grouped together in a certain order so that they
have meaning. This is still a little abstract, but I
think if we see some of the things that we can do with a
word processing system things will be much clearer.
-letters
-dissertations
-theses and other term papers
-books, stories, poems etc.
-notes
Each of these applications has its own unique charact
eristics and problems. One problem which they have in
common is that of errors.
Let's go back a couple of years, or more exactly to the
year 1 before CK (year 0 is the year in which the correc
tion key for the electric typewriter was developed). Type
writer technology had made many advances. Cramps and
strained muscles in the fingers of secretaries had more or
less become a thing of the past after the electric type
writer was brought into use. The IBM Selectric typewriter
was being delivered to offices throughout the world. At
the same time, the world record for typing speed had
reached new heights along with the use of correction fluid
- 28 -
Abacus Software IDEAS TO USB ON YOUR C-64
because, of course, the faster you typed, the more mis
takes you made. These little white bottles, which resem
bled bottles of fingernail polish to female users (and led
to white fingernails now and then) were an absolute must
for any desk.
The problem with this wonderful stuff was that it
tended to dry out over time. So one had to shake it before
using and if necessary add a little thinner. Shaking
correction fluid bottles became a necessary skill for
anyone who used a typewriter. The time that had been saved
through use of the electric typewriter was used up by
shaking bottles. Well maybe not quite, but almost
But then "Mr. IBM" let go of his bomb. A small
orange-colored key made the little white bottle almost as
out-dated as dinosaurs. If you found a mistake on the page
you just moved the print head back to the mistake, pressed
the orange key and afterwards hit the correct character
and the mistake was gone. Now that was real progress.
Improvements seemed unthinkable, but in reality there
was already something better. The electronic brains, as
they was called at that time, had been installed in many
large companies during the previous years, spoiled and
lovingly tended by High Priests called programmers and
system analysts, and were becoming more common. The excuse
"Our computer is down" was used to cover up every deadline
which was not met within the company. It didn't take long,
however, for clever systems experts to come up with the
idea that these enormous machines could be used to do
something other than number-crunching. And thus began the
era of electronic word processing. We can safely omit the
- 29 -
Abacus Software IDEAS TO USE ON YOUR C-64
next few years when word processing software could not be
purchased for anything less than a four-digit figure.
The important question was this: How would it be if,
instead of typing text directly onto a piece of paper, we
could display the text directly on a monitor. This proved
to be an excellent idea since the electrons fired onto the
cathode ray tube to represent the letters had the very
excellent quality of being changeable or correctable at an
enormous speed. This was not true of the letters or char
acters hammered onto a piece of paper. The smart inventors
all agreed that this was the way it should be. Text should
first be typed onto a display screen and after all the
mistakes have been corrected should it then be printed on
paper.
During this period of enlightenment, the inventors came
up with a couple of other things that makes word process
ing so pleasant for us today:
-formatting
-insertion of text blocks
-search and replacement of texts
-storage of text
Formatting
The writer must at some point decide what the text is
going to look like when it is finally printed on paper.
You may ask "Don't you see that when you are typing it
- 30 -
Abacus Software IDEAS TO USE ON YOUR C-64
in?" The answer is not simple.
There are two major philosophies around which word
processing systems are designed. One philosophy is that
the word processing system should show everything on the
screen exactly as it will appear on paper. This is only
reasonable if the monitor is capable of showing everything
in exactly the same way as the printer can print it. And
at this point we have to say that such programs are very
nice, but unfortunately cannot be used on the C-64, whose
monitor is not capable of showing superscripts, foot
notes, or expanded text such as can be printed on an EPSON
FX-80, for example. For the time being we will forget
about this particular type of formatting.
The second philosophy, which is used in most word
processing packages that can be purchased for the '64, is
that the formatting is done during printing. This has one
very large benefit which can best be shown through use of
an example:
Let's say that you have written a letter with a word
processing system. During the input you have paid no
attention to the length of the line or to how words should
be separated. Your text is now finished and you wish to
print it out. The printer of course does not know what it
is supposed to do. You will be asked to specify the docu
ment format with the following information:
- left margin
- right margin
- top line
- bottom line
- 31 -
Abacus Software IDEAS TO USE ON YOUR C-64
- justification (yes/no)
- centering (yes/no)
- distance between lines
- distance between characters
- selection of character set
As soon as you have given the printer the required
information (which will also be stored in the computer)
you will be able to see the formatted text on the display
screen. If what you see does not meet your approval, you
can reformat and redisplay until you are satisfied with
the results.
Remarks:
My more detailed descriptions relate to the word proc
essing program, TEXTOMAT, which is available from ABACUS
Software and which was used to write, format, and print
the original version of this book on an EPSON LQ-1500
printer. All of the word processing programs which can be
used with the C-64 are more or less similar except in
price. Most of the things said about TEXTOMAT hold for
other programs as well.
Processing blocks of text
A text block is a portion of text that you define. You
can make any portion of text a block simply by marking off
that section within the text. Once the text block has been
defined, you can manipulate it in a variety of ways:
- 32 -
Abacus Software IDEAS TO USE ON YOUR C-64
- delete
- store
- copy
- move
What all these capabilities actually mean and what they
can do for us can perhaps best be shown through another
example. Let's assume that you are going to use your word
processing system to write cost estimates for potential
customers. You can imagine that there are many lines and
paragraphs which will be exactly the same in every letter
which you write. For example the paragraph:
"This offer, including prices, conditions of
delivery, and discounts, is good for 14 days.
Please request a new bid at the end of this
time."
You can test for yourself how long it takes you to type
this paragraph . In my case it took around 20 seconds.
This means that if you write 100 letters times 20 seconds
you have used approximately 30 minutes of time. But wait.
Won't the time that I have saved be needed to read such a
block of text in from the diskette? It's not worth my
time to store such short blocks of text. Well then, what
if we store the entire letter? Good, but what about the
particular numbers and prices that are different for each
cost estimate. What do we do then?
You can write a cost estimate which contains all the
information which is normally included in all letters.
This letter should be processed in the normal way and then
printed out on the printer. Now let's take a look at the
- 33 -
Abacus Software IDBAS TO USE ON YOUR C-64
letter on the display screen. Everything which applies
only to this one particular offer should be deleted (in
cluding the date). The rest of the letter should be de
fined as a block and stored. The next time that you wish
to make a bid you need only read in the block of text and
fill in the blanks with the correct information. Your
offer is then complete. If you write 100 letters, this
procedure will save you at least 70 minutes.
We'll also learn to appreciate these block operations
when working with large manuscripts. This was certainly
true as I was writing this book. Often I liked a particu
lar passage so well that I stored it away and later de
cided to toss the rest of the chapter into the electronic
waste basket because I didn't feel it was good enough.
What one has stored electronically on the diskette, can
be used and reused.
By the way, these block operations don't always have to
take place through an external storage medium. They can
also take place within the text or on the display screen.
Blocks can be moved, copied, and deleted. The possibili
ties are almost unlimited.
Search and replace
These capabilities are really fantastic! You can search
through an entire document for a word or group of words
and see in what context it was used.
- 34 -
Abacus Software IDEAS TO USE ON YOUR C-64
Another example: Let's say you are working on a highly
scientific historical paper on "Internal Navigation in
South East Europe1* (It's possible). One company played a
really important role in this particular area the "Danube
Steam Ship Company" (This is a lot worse in German:
"Donaudampfschiffahrtsgesellschaft"). Let's say that this
group of words, or one long word in the case of the orig
inal, would occur over 40 times within your text. In order
to go easy on you nerves and the tips of your fingers you
would only have to type in a short-hand form, let's say
DD, everywhere this group of words would occur. As soon as
you finish the first draft you then use the search and
replace function of the word processor and let the system
search for each occurrence of DD and substitute the name
of the company. It's as easy as that. Likewise, in the
first draft oi this book, each occurrence of the word
"computer" was originally only a "C" and was subsequently
changed to "computer" in this manner. If you have the time
and energy you can count how many times the word computer
occurs.
A further application is to check the spelling of
words, especially the spelling of foreign words. If you
only knew how much trouble I have with that. My method is
this: If when I am reading a document and am not quite
sure of the spelling of a foreign word, say the German
word for cathode ray tube, (Kathodenstrahlrohr), I simply
write the character combination KAT* wherever this word
occurs. The German word and what I have used as the short
form are then written on a piece of paper and checked at
a later time in the dictionary. I can then replace every
occurrence of KAT* by the correct spelling of the word.
One must exercise a bit of care in choosing the short
- 35 -
Abacus Software IDEAS TO USE ON YOUR C-64
form to ensure that the same character combination will
not be replaced in a word where we don't want it to be
replaced.
Storing text
We should mention at this point that every piece of
text which you suspect, however slightly, might be used
again should be stored. It should also be clear that you
need at least one disk drive (preferably two) to really do
word processing effectively.
Here are some helpful hints in this area: Don't wait to
store your text until everything is finished. Particularly
in the case of very long document, it is recommended that
you save it every 80 to 100 lines. More than one tired
writer has turned off his computer at 2:30 in the morning
after having forgotten to save the text that was typed
into the computer.
Give filenames to your text that have some meaning. One
possibility: Some short form of the actual title plus the
word "text" plus the section number. For example, assume
your paper is called "Electronic Switching Past and Pre
sent," and you have just written section 7.1.1, "Buddhism
and Transistors." This would give us a block title of
"ESPP.TXT 7.1.1". Write that down in your temporary table
of contents which can then be revised from time to time.
Make a backup copy of absolutely everything!!! The
- 36 -
Abacus Software IDEAS TO USE ON YOUR C-64
diskette is a very reliable storage medium but it is still
magnetic and therefore fallible. Count on it failing. Do
you have any idea what happens if you lay a pair of scis
sors on top of floppy disk? No? Scissors have the unfortu
nate quality of being slightly magnetic. This magnetic
field can ruin any data which is already stored on the
diskette. It would be very easy to destroy many weeks'
work. You can make this backup copy either daily or when a
diskette is full. If you have 2 disk drives it is extreme
ly simple. With one you have to be a little bit of a "disk
jockey." The process goes something like this: Insert the
data diskette, read some data into the storage area,
insert the backup diskette, write the data onto it, delete
the data from memory, reinsert the original data diskette,
read new data from the diskette, and so on. If this is
too much work you should at least get in the habit of
writing every bit of text that you have put on the disk
ette on paper. At least you will have a backup copy in
this form.
- 37 -
Abacus Software IDEAS TO USB ON YOUR C-64
2.2 Calculating and planning
The computer is right at home any time it can work with
numbers. That is its real power: adding, subtracting,
multiplying, dividing, sorting, evaluating statistical
information, correlations, etc. These operations are per
formed with lightning speed by the internal workings of
the machine. But there is a lot more to it than just that,
if the results are to be given to the user in a readable
form. It is at this point that we use our calculating
programs.
Just to confuse the issue somewhat, it is particular
ly in this area that the technical terms are very comp
licated. We will not consider the really professional
software packages that are now available for the 64, since
anyone who wants to do financial analysis for a medium-
sized company is unlikely to use a C-64.
What can calculation programs do?
- Create a spreadsheet
- Do computations within the spreadsheet
- Evaluate the spreadsheet
- Compute statistics
- Print out the statistics
- Print out diagrams
- Do limited forecasting
- 38 -
Abacus Software IDEAS TO USE ON YOUR C-64
We then have 3 basic functions which build on each
other:
- spreadsheets (bookkeeping tables)
- statistics
- diagrams
In the next section, if everything goes as planned, you
will learn the basic functions of spreadsheet calculations
and also what you can do with the results. Discussions on
management-oriented planning software and other such
complex packages will not be found there. Anyone who
wishes to know more about these type of systems can read
about them elsewhere.
The spreadsheet
Unfortunately the term spreadsheet or table is somewhat
abstract. A spreadsheet is a multidimensional table in
which certain fields are related to or derived from cer
tain other fields.
A multiplication table, as a very simple example, is
two-dimensional. It has a vertical direction, let's say
from 1 to 4, and a horizontal direction with the numbers
from perhaps 1 to 12. The relationship of the values of
the table elements is that the values are the products of
the row and column numbers. We then have the following
picture
- 39 -
Abacus Software IDEAS TO USE ON YOUR C-64
_! 2 3 4 5 6—7 8—9 10 — 11 — 12*
* *
*-l-*
* *
*-2-*
* *
*-3-*
* *
*-4-*
* *
*****
We can then picture a checkerboard grid with 12 * 4 =
48 different fields. In every field from top left to
bottom right, we have the values, which depend on the
defined relationships. Let's take a look at the finished
table:
- 40 -
Abacus Software IDEAS TO USE ON YOUR C-64
*****************************************************
* 1—2—-3—4—-5—-6—7—8—9—10—11 — 12*
************************************************
*—* *
*-l-* 1 2 3 4 5 6 7 8 9 10 11 12*
*—* *
*-2-* 2 4 6 8 10 12 14 16 18 20 22 24*
* * *
*-3-* 3 6 9 12 15 18 21 24 27 30 33 36*
* * *
*-4-* 4 8 12 16 20 24 28 32 36 40 44 48*
* * *
*****************************************************
There are many things you can do with this table:
- row-wise addition
- column-wise addition
- define subsections
- add subsections
It's not necessary to restrict ourselves just to add
ition. You could also do things like add up each row and
calculate what percent of the total sum each row sum is.
You can also go into the third dimension. In two dim
ensions we had the x-direction (horizontal) and y-direc-
tion (vertical) standing at right angles to each other
Going into the third dimension we have to add a z axis
which is in turn at right angles to the other axes. We
then have an imaginary cube the corner of which is made up
of the x, y, and z axes. Dependent on these three axes we
- 41 -
Abacus Software IDEAS TO USB ON YOUR C-64
then have a large cube made up of a number of snail cubes,
each of which contains the result of an operation. Got it?
An actual example should clear things up a bit. Let us
take our original matrix, which is two dimensional, de
fined by x=12 and y=4. We then replace some values. For
example, x stays the same and y takes on the values of 5
through 10 instead of 0 through 4. If we now recalculate
our table, we have a second page. Then we again take new
values for the y-axis and recalculate the table, creating
a third. We continue this a couple of more times and
eventually we have a pile of pages on our theoretical
desk. Let us then also assume that we take our pages to a
book binder who makes a book out of them. What we then
have in our hands is a 3-dimensional table having z-many
pages. The advantages in comparison to a real collection
of tables is that we can define relationships across the
different pages.
And now to the fourth dimension—I can already hear
the cries of protest, but in a computer the fourth dimen
sion is child's play. Even the example we used above still
functions. Let us assume that we made not one book but a
whole row of books using the process described above.
Everything clear? If not, the program ideas in chapter 4
will should make it so.
Statistics
The fact that we went into some detail in the previous
section will now help us since tables and matrices are a
- 42 -
Abacus Software IDEAS TO USE ON YOUR C-64
good preparations for statistics, and statistics, in their
simplest form, are nothing other then a summation of rows
and columns. Please note: in their simplest form.
Let's first define the term statistics with an unsci
entific but useful definition. Statistics is a way of
bringing order to a collection of data. This is to our
benefit, if after ordering the data, we are able to make
some determination about the relationships among the them.
For example, we can collect data on birth dates within our
circle of friends and from their friends, their children,
their grandmothers, their grandfathers and neighbors etc.
In addition, we ask what everyone's favorite meal is. We
then place all of this previously unordered information
into a matrix. Now we can start our game. What percent of
those questioned belong to which zodiacal sign? That is to
say, which are Aries and which ones are Virgos? What
percent of those questioned said that their favorite meal
was Welsh rabbit, or what percent of those who have the
zodiacal sign Aries like to eat cucumber salad? After our
evaluation, we can try to answer the really important
question. Is there really any relationship between a per
son's sign and their favorite food? At least that is what
a statistician would do.
At this point you probably say that's nonsense, and in
this particular case you're right. But let's replace the
sign of the zodiac with age and the favorite meal with a
hobby. Then let's expand the number of persons questioned.
If you were the owner of a hobby shop, you could probably
be able to think of a number of good ways to turn this
information into increased sales.
- 43 -
Abacus Software IDEAS TO USE ON YOUR C-64
A logical outcome of statistics is a prognosis or
forecast. As the name indicates (Greek/Roman: pro=future
and gnosis=belief or opinion) we here leave the land of
hard facts, particularly if we don't have a large-scale
computer of the size used by the public opinion pollsters
when they predict election results. This area is worth
devoting some time to, but it is not within the scope of
this book and we simply do not have the room. Therefore a
few comments:
-gather and enter the data
-order the data
-put the data into a statistical form
-evaluate the statistics
-make a prognosis based on the evaluation
-check your prognosis against new data as it becomes
available
Charts
After all the difficult abstract things that we have
talked about up to now, we are going to do something
simple. A chart is nothing more than a graphical represen
tation of data, statistics, or a prognosis. As the owner
of a 1541 disk drive, you saw a bar chart containing the
sales information of computer companies when the demo
diskette was run. I was not surprised that the yellow
Commodore bar, accompanied by all sorts of noises, surpas
sed the A-bar (A for Apple or Atari). In any event you can
program such bar charts yourself without needing any spe
cial software and they are in many cases the best way to
- 44 -
Abacus Software IDEAS TO USE ON YOUR C-64
show results.
Strangely enough, it seems that the marketing depart
ments of the computer manufacturers believe that pie
charts are the most effective. You hardly ever see an ad
for a new personal computer that doesn't have some type of
pie chart. It's very effective. The entire pie represents
100* and the individual pieces show the percentages rel
ationship to the whole. Without additional graphics cap
abilities you should not try to show your household budget
per pie chart. The required PEEKS and POKES would probably
ruin your appetite.
Line charts are another favorite. They have the draw
back that if you try to represent more than four or five
lines at a time they are very difficult to read. Lines or
curves do however lend themselves very well to showing
changes and values which are dependent upon time.
If you are looking for some suggestions on how to set
up your charts then you should take a look at television.
There has been a good deal of drawing going on there for
some time (see the remarks about the predictions for
election results above). This type of graph can be rep
resented very well on the 64.
Diagrams and graphs are the real show part of any dry
program. With good graphics you can very often leave a
good impression and make a real show out of relatively
weak data. You know the old saying "There's no business
like show business."
- 45 -
Abacus Software IDEAS TO USE ON YOUR C-64
2.3 Storing and sorting data
What are data? In this case, let's just pretend that we
can't even count to 3.
Why is it that we actually speak of data in the plural?
What is it called in the singular? Let me tell you (a
little tongue-in-cheek): Date. Ah, now we have a clue
that might lead to a solution of our definition problem.
Friday the 13th, April 1984, the 1st of May or 10/11/52
are all terms with which we are familiar. We have found
the prototype for data.
The most important property of our example is that each
date is different from the others. In the first place the
word itself is different. This is clear; we have different
days. In the second case the format is different. If we
were to try to put dates in a programmable appointments
calendar in this chaotic form, the computer would probably
start coughing and tell us in no uncertain terms to "REDO
FROM START." Really good programs eliminate this problem
and accept every possible date format. We learned some
thing in spite of this: data that are going to be proc
essed must usually be in some type of predefined format.
Except for these, there are not too many rules we have
to follow in data processing, except for one very impor
tant point: Never try to put in more data than the memory
capacity can handle. In the worst case, this leads to
garbage data. Everything is there, it's just a question of
it being in a usable form
- 46 -
Abacus Software IDEAS TO USE ON YOUR C-64
Oh, yes, what then are data? Let's first give a loose
definition—everything which can be printed out in comp
uter format through the use of alphanumeric characters
(the letters of the alphabet plus numbers). These include
names, addresses, titles, prices, dates (in the sense of
day, month, year—a series of numbers), shoe sizes, hair
colors, cubic inches, storage capacity, open invoices,
notes, appointments, calories, etc., etc....
As you can see, there are few limitations. We now must
bring some sort of order to this data, and not just in
the input format. What we use to bring order into the
situation is called a file. This is a universal word.
Whenever we have more than two data items, we have a file.
By using files, it is possible to store information onto a
diskette, for example, and to retrieve it again. There are
different types of files. It's easier to explain the
different file types by using examples rather than from a
theoretical standpoint.
Simple files built from one- or more dimensional arrays
are easily set up and processed. Only simple programs
which most people with a beginning knowledge of BASIC can
write are required to handle these types of files.
The basic elements of file processing are as follows:
- file creation
- file maintenance
- sorting of files
- data selection
- 47 -
Abacus Software IDEAS TO USB ON YOUR C-64
Even though these activities are more or less obliga
tory they may be best explained by looking at the workings
of a commercial data management program such as DATANAT.
Other data management packages perform functions similar
to those described for DATAMAT.
File creation
The first question that you should ask yourself is,
"What kind of information do I need to keep track of?" The
second is "What data do I need to give me this informa
tion?" Let's take an example. Say you wish to keep infor
mation about the birthdays of your extremely large circle
of friends. You call your file "Birthdays" and decide,
after giving the matter some thought, to include the
following information in every record:
- relationship (uncle, aunt, son...)
- first name '
- last name
- street number
- zip code
- city
- telephone
- date of birth
- ideas for presents
- affection level (rich uncle, evil mother-in-law, god
child, etc.)
You check the list of data items to make sure that you
haven't forgotten anything and then take a look at the
- 48 -
Abacus Software IDEAS TO USE ON YOUR C-64
order in which they occur. The list could be arranged
better but it will do for now. Next you have to design the
screen input format.
Perhaps you wish to begin by placing an attractive
border on the screen. Next you ask yourself—where am I
supposed to put all the information from my old card file?
I can make a suggestion. Let's take a look at the input
form that I have designed for you:
* *
* Birthdays *
**********************************************************
* *
* 1) Date : 11/21/1950 *
* *
* 2) First name : Anne *
* *
* 3) Last name : Smith *
* *
* 4) Address : 99 Main Street *
* *
* 5) City/State/Zip : Seattle WA 98011 *
* *
* 6) Telephone : *
* *
* 7) Relationship : cousin *
* *
* 8) Affection : *
* *
* 9) Gift : red roses *
- 49 -
Abacus Software IDEAS TO USB ON YOUR C-64
The program will now ask you for the name of the input
format as well as for the name of the file. It's usually a
good idea to use the same name for both. You can, of
course, use the same input format for two different files.
This will probably not happen in our case unless you
decide to trade in all your relatives. As soon as the
input format has been saved, DATAMAT will ask which fields
of the format are going to be index fields, i.e. which
fields will later be used as search criteria. You should
take three things into account when making this decision:
- A shorter index field allows more records to be stored
in the file.
- An index field that is closer to the top of the input
form allows for a faster search.
- A field to be indexed should contain information in each
record.
At this point, DATAMAT will display the maximum number of
records that can be stored in the file. You are then asked
to enter the number of records that you are actually going
to enter into the file. Try to be a little bit miserly
here; give only the number that you think you are actually
going to need. Don't say 650 just because the maximum is
657. No one has that many relatives.
- 50 -
Abacus Software IDEAS TO USE ON YOUR C-64
File Maintenance
Your birthday file is defined and you can now continue
with the processing. You can now begin to enter all your
data which should take about an hour and a half. Now I can
take a break.
Are you finished? Good, then I can continue with my
explanation. You now have the capability to search through
your file and select something of interest. You can do
this by selecting "search" from the menu. A search goes
quickest if you search using an index field. The index
field in a birthday file could most reasonably be the
month. Why the month? Just consider that the simplest use
of the file is that on the last day of each month you take
a look at who is going to have a birthday in the following
month. Suppose that today is the 30th of May. You there
fore search the file for records whose index = 06 (for
June). After a couple of seconds the name of the first
relative who has a birthday in June is displayed on the
screen.
The program now wants to know if it should search
further. If so, you probably have another uncle or aunt
who has a birthday in June. Then the next record will come
up on the screen and so on until everyone with a birthday
in June has been displayed.
And how do change and delete work? If you have a record
that needs to be changed or deleted already on the screen
then you can simply select either change or delete from
the menu. Change works in the same fashion as input.
- 51 -
Abacus Software IDEAS TO USE ON YOUR C-64
Deleting you should try out when you have your own DATAMAT
or other data management software.
Sorting files
Now things begin to get interesting. Up to now, every
thing that we have done with our computer file we could
have done by hand on 3x5 cards. Let's say you want to
select the records of everyone who has a birthday in
November and who is supposed to get a gift of a new tie.
"No sweat," you'll probably say. You just shuffle through
the cards, stopping at those with a birth month of "11."
Next you see if the gift idea is a "tie" and if so, you
pull the card out of the stack since it meets your search
criteria.
But what if I'd also like to see the name of all my
aunts who have a birthday in June. What, still not finish
ed? Right, you first have to replace the 3x5 cards that
were picked from our first search. If your file is on the
computer, you don't have to do that.
"So what?" you might say. "That's something I would
very seldom have to do." With a birthday file this is
probably true. But what would you do if you had a customer
file of a 1000 names and needed similar searches? The
advantage is that such selections can also be saved as a
pointer file and called up again when required.
The sorting of a file is also handled much more eff
iciently with a computer. To sort a file, it may be done
- 52 -
Abacus Software IDEAS TO USE ON YOUR C-64
in several steps.
- sorting by month
- within the month by days
- within the date by first names
- end
You can now sort on the first names by relationship.
Because the computer sorts in alphabetic order it is also
possible to get the following: date : 11/21, first name:
Nary
1) cousin Mary
2) mother Mary
3) niece Mary
4) grandmother Mary
5) sister Mary
6) aunt Mary
7) great-grandmother Mary
This is not exactly what we wanted, but it can still be
very useful to have a file in which the records can be
sorted by all the different fields. We'll come back to
this later.
Data selection
We will brush over this quickly. To select from a file
means that we are going to print out only the selected
-" 53 -
Abacus Software IDEAS TO USE ON YOUR C-64
data records in a particular form.
Your printer will be able to give you a lot of help in
getting the right format. You can for example use the full
80-character width as well as the control codes to get
emphasized, small, or proportional letters, etc.
You will also be able to specify where on the page each
field is to be printed. Titles can also be printed. For
our birthday file we have chosen the following output
format.
Birthday: (MM),(DD),(YY)
First name, last name
Address
City, zip
Telephone
Gift idea
Consider: You are going to use this format to print a
new list every month. You can either use it to print the
list for the following month or the entire year. This has
the drawback, however, that if any changes are made you
must print a whole new list for the year each time.
You can also use this part of the program to print out
the address labels which are to be placed on the gift
packages.
So far so good. DATAMAT can do all that but how about
other data management packages? I think I can put your
mind at ease. Most of the data management packages for the
C-64 offer similar capabilities. They differ only in their
- 54 -
Abacus Software IDBAS TO USE ON YOUR C-64
ease of use, processing speed, price, or availability. If
you use the check list for the purchase of software (sec
tion 1.4), you'll be able to select the right one.
- 55 -
Abacus Software IDEAS TO USB ON YOUR C-64
2.4 Music
To be really truthful, I love music in almost every
possible form: from Wagner to Mozart, from Elvis to the
Beatles, rock'n roll, reggae and funk. I like to listen
to almost everything and in spite of that I am very un
musical. Playing "Mary had a Little Lamb" on a child's
flute was about the best I could do and now I am supposed
to make music with the Commodore 64. But have courage.
I'll get started:
"The starting address of the SID is 54272 (Dec) = $D400
(hex). The low-byte can accept values from 0 to 255, the
hi-byte from 0 to 255. You can adjust the tone of voice 1
in register 19 from loud (0*16) to soft (15*16)."
You just read "Music for Beginners", the first in a
series called "The Commodore 64 as Synthesizer." This is
more or less what happens to us when we try to learn to
make music by using the C-64 user's guide. It looks more
like the code used by a secret society whose members
already know exactly what they want to do.
But don't let yourself be scared away. There are some
fantastic aids that are available to make beautiful sounds
with the 64. For example, packages such as ULTRABASIC-64
and VIDEO BASIC-64 contain simple commands for producing
music. Or dedicated musical packages such as SYNTHY-64 and
SYNTHIMAT and be used even by professional musicians.
- 56 -
Abacus Software IDEAS TO USB ON YOUR C-64
2.5 Painting, drawing, and designing
I don't wish to repeat my previous comment about the
readability of the C-64 handbook for beginners, so I'll
only say that the same holds true for graphics applica
tions.
You may have read that the '64 offers many capabilities
in the area of graphics. For example the HIRES mode (high
resolution) is capable of displaying 320 x 200 individual
points. If my calculator is working correctly that's
64,000 dots on the screen. You should be able to draw some
really fantastic pictures if you only knew how. This
leaves us with two recommendations: either buy a graphics
expansion package or a good book on '64 graphics.
Because painting and drawing are more in my line of
work than music, we won't go quite as quickly as we did in
the previous section. There are a couple of things about
graphics which we need to discuss. However, they aren't so
difficult that you'll need a university degree to under
stand them.
It is possible to draw some very attractive pictures in
the standard character graphics mode (using the graphics
characters on the front edge of the keys on your '64).
Drawing like this takes practice and patience. Up to 1000
(40 characters per line x 25 lines) graphics characters
can be displayed on the screen. There is an equivalent
number of storage locations for these 1000 characters
(called screen memory) and a corresponding color memory
- 57 -
Abacus Software IDEAS TO USE ON YOUR C-64
location for each character.
The principle for screen display is very simple. The
screen memory is similar to hotel keyboxes that contains
rows and columns of individual boxes in which unused keys
are placed. In this case, we have two sets of keyboxes
with each set having exactly 1000 boxes. One set of key-
boxes contains the character to be displayed and the other
set of keyboxes contains the color of that character.
When the computer displays a picture on the screen, it
does so very systematically. First it looks in box number
1 of the first set of keyboxes and takes the character
that it finds there. Then it goes to the second set of
keyboxes which contain small paint cans. The computer then
takes the character which it brought, dips it into the
paint can in box number 1 of this second set of keyboxes
and finally attaches it to the inside of the monitor
screen (we're beginning to get somewhat silly again). This
process is repeated by the computer for box number 2, box
number 3, and so on until all 1000 boxes have been comp
leted.
The usual way of placing characters into the individual
boxes is through PRINT commands in a BASIC program, but
you can do it much faster by POKEing the box numbers with
the character's code and color. Of course we don't want to
make this too simple, so the boxes are not numbered from
1 to 1000 but from 1024 to 2023 (for the characters) and
from 55,296 to 56,295 for the colors.
One question always asked by graphics fans is "How can
I use high resolution graphics?" As is the case with many
- 58 -
Abacus Software IDEAS TO USB ON YOUR C-64
other things in the computer, this is a storage problem.
Since one byte (8 bits) is required to store the informa
tion for every screen character position, it is only
possible to define a total of such 1000 locations. There
is simply no room for any more. Unfortunately, a very
simple character which displays only a single pixel still
requires 1 byte to hold the information just as does a
complex character. This is because each character really
consists of an 8x8 bit format in the following form:
01234567
******** 1
...**... 2
...**... 5
Every character of the character set can be represented
as an 8 x 8 matrix, including the graphic symbols. But in
hires mode, characters are not required. Each pixel on
the screen is represented by one bit in memory. But wait!
Let's do a little more arithmetic: 8 bits = 1 byte; 1024
bytes = 1 kilobyte and 64,000 bits = ? kilobytes. Right, a
little less than 8 kilobytes. In standard character mode,
1000 bytes are required for the picture and 1000 bytes for
the colors. So this storage area is too small for high
resolution graphics. The storage area used for high reso
lution graphics .move to a larger area.
- 59 -
Abacus Software IDEAS TO USE ON YOUR C-64
More detailed information on the points discussed above
can be found in the book The Anatomy of the Commodore 64.
- 60 -
Abacus Software IDEAS TO USE ON YOUR C-64
2.6 Do-it-yourself programing
It's possible that there is nothing you would rather do
less then discuss this topic. I can well understand that
since I too must admit that I would rather work with
finished software. In particular I don't want to write my
own word processing or data management software.
A strange thing happened the other day. I was taking a
look through a computer magazine when I saw a article
which really caught my eye and in which one particular
word really jumped out at me.
*** FORTH ***
That sounds like force. It aroused my curiosity. I was
really surprised when I found that the article was about a
programming language. In spite of this, I read the article
further and quickly came to the conclusion that this was
something for me. I'm now going to leave the story at the
most interesting part and talk about something else for a
minute. The following programming languages are available
for the 64:
-BASIC (built in)
-PASCAL
-LOGO
-FORTH
-ASSEMBLER
There are of course many many more programming lang-
- 61 -
Abacus Software IDEAS TO USB ON YOUR C-64
uages (COBOL, FORTRAN, C, LISP, ADA, to mention only the
most used). But only the ones listed above can be run on
the C-64 (the ADA Training Course [with compiler and
editor] is now available from ABACUS Software and a C
compiler is forthcoming). We won't discuss BASIC any fur
ther since information on BASIC will be found in other
chapters.
PASCAL
Pascal is by its very nature a learning language. That
is to say, it lends itself very well to learning how to
program. You don't have to suffer under the illusion that
programming consists only of typing in lines of code.
Quite the contrary, using Pascal, a greater portion of the
work involved is in the preparation.
-■ program concept
- program design
- flow chart
- the design of input formats
- file format and list of variables
- output design
- program documentation
These are the principle points of program design that
must be taken care of before typing in the code. Pascal
supports this type of structure through the fact that a
good portion of the activities listed above are a portion
of the Pascal program itself.
- 62 -
Abacus Software IDEAS TO USE ON YOUR C-64
You might even say that structured programming is a
hallmark of Pascal. Programs retain their clarity because
of the structure forced upon them by the programming
language. For example: Pascal does very nicely without
GOTO statements, something that can lead to a good deal of
confusion in BASIC programs.
In addition to this, Pascal programs run quite quickly
and are sometimes better for professional applications
than BASIC programs.
LOGO
The name is clever, and so is the language. Anyone who
has ever heard about LOGO usually thinks about it in terms
of "children and computers" and this for good reason. LOGO
is a language with very few commands. No one has to use
short hand instructions as in BASIC such as CLR, LEN, SYS,
etc. Instead you can use simple words to control the
computer. The only drawback is that LOGO programs tend to
be very long.
This is also the case with so-called "turtle graph
ics." Turtle graphics is not a real language. The turtle
is nothing more then a fancy cursor which draws directly
on the display screen. LOGO and turtle graphics actually
go very well with the '64 but I have never tried them out.
- 63 -
Abacus Software IDEAS TO USB ON YOUR C-64
FORTH
"At last!" you're probably saying now. And after you
have read the next couple of lines you may be disappointed
because you are not as enthusiastic about FORTH as I am.
But let's wait and see.
FORTH is
- easy to learn
- fast
- and universally applicable
The heart of FORTH is its library of commands. It is
very small. This means that FORTH does not require much
room in the memory of the computer. On the other hand,
because you can do very little with only a couple of
instructions (or the programs must be unusually long) the
designers came up with a simple trick. The user can expand
the library of commands of FORTH at any time to meet the
requirements of his program.
For example, FORTH has no command to raise numbers to a
power. This command must therefore be defined externally.
FORTH can multiply which means that we only have to define
raising to power as a series of multiplications. It's as
simple as that. If a program is going to do only arith
metic operations, your library will require very few out
put commands. If you're writing a word processing program,
your library won't require many arithmetic commands. The
FORTH program never has to scan through a large library to
find a command.
- 64 -
Abacus Software IDEAS TO USE ON YOUR C-64
It is in any event worthwhile to take a closer look at
FORTH. FORTH programs can run up to 10 to 30 times faster
than a similar BASIC programs.
ASSEMBLER
Programming in assembly or machine language is probably
as difficult as trying to determine a precise definition
for the word. You have probably heard or read that some
people program in machine language and have a slight
suspicion that that has something to do with assembly
language. It is probably more correct to say machine
language but let's not worry about semantics.
There is no such thing as a machine language in a
global sense. A machine language is always for a specific
microprocessor. There is a 6502 machine language, a Z80
machine language, and a 68000 machine language. Machine
language contains instructions that the processor can
directly understand or interpret. This of course leaves
something to be desired as far as the understandability
for us humans, and that's the big problem. Another problem
is that you can only really use a machine language if you
know every little detail of the processor. Programs writ
ten in machine language do, however, run faster than in
any other language.
If you are going to write your own programs you should
at least be watching machine language out of the corner of
your eye. Even when programming in BASIC you can make use
- 65 -
Abacus Software IDEAS TO USE ON YOUR C-64
of small machine language routines (these are sub-programs
in machine language). PEEKs and POKEs will also take you
in the right direction.
Computer users who write their own application prog
rams, independent of which language they use, always have
to ask themselves the question: Is the time required to
develop my own programs really worth the effort? Of
course you get more into the routine with experience. You
can also develop standard subprograms which can be used
again in other programs. This reduces the amount of time
required. Until you reach this point however, it can take
a couple of weeks, months, or years. If you really want to
fully utilize your Commodore 64 from the first day on,
you should probably go both ways, packaged software for
day-to-day use and programs which you have developed your
self for learning, fun, and later, more specialized appli
cations .
- 66 -
Abacus Software IDEAS TO USE ON YOUR C-64
3. Writing and printing
Before continuing, I would just like to say a couple of
words about monitors. If you are going to do a lot word
processing with your '64, I highly recommend that you get
a monochrome monitor. You'll save yourself a lot of troub
le with your eyes, particularly if you stick with the
green or amber monitors. The resolution is much better
than the color monitors and monochrome monitors are cons
iderably cheaper.
Some word processing packages allow you to change the
colors of the text and background on the monitor. This may
be a suitable alternative to a monochrome monitor if you
already have a color monitor. At the present time I am
writing with yellow on red. You'll have to try it out to
find out which combination you like the best.
One last word about the requirements: I have always
shown very economical configurations. With word processing
it is particularly difficult to give any general sort of
recommendations about printers. The old saying still goes:
No matter how good your printer prints, there is always
another one that prints better. And the question of daisy
wheel printers, yes or no, is really a question of how
thick your wallet is.
- 67 -
Abacus Software IDEAS TO USE ON YOUR C-64
3.1 Party invitations
* Requirements *
* Hardware *
Commodore 64
Datasette, disk drive is better
Monochrome monitor
* Dot-matrix printer *
* *
* Software: *
* *
* None *
* *
* Prerequisites *
* *
* Good knowledge of Commodore BASIC *
* *
- 68 -
Abacus Software IDEAS TO USE ON YOUR C-64
"Hey, let's throw a really fantastic party!"
"Yeah! Who should we invite?"
"Well, let's see. Fred and Joan, Bob and Eva, the
Smiths and their son..."
"Wait a minute. Let's go about this a little bit more
systematically. Get a piece of paper."
"By the way just where does Fred live these days?"
Later:
"Well, that's over one hundred people. If we are going
to invite all of them there is going to be an awful lot of
writing to do."
Stop!!
What do we have a Commodore 64 for anyway? Writing a
lot of very similar letters is a classic application for a
home computer.
Question: Do you already have your address book in the
computer? If so, then you can skip the next section.
Otherwise, read on.
3.1.1 A simple address file
Just a few words before beginning. This program is
primitive and not particularly user friendly. It's meant
to get you started and give you some ideas.
First question: How many addresses are going to be
- 69 -
Abacus Software IDEAS TO USE ON YOUR C-64
entered?
Second question: How many fields will each record con
tain?
Let's say we are going to have 100 records (addresses).
Each record will have the following fields in our example:
-first name
-last name
-street address
-city, zip code
That is a total of 4 fields per record. One record will be
called D$ in the program. All together this gives the line
of code:
100 DIM D$(100,4)
First thing we need to do is to write our input routine:
100 DIM D$(100,4)
200 REM INPUT
210 Z=l
220 INPUT "FIRST NAME"; D$(Z,1)
230 INPUT "LAST NAME "; D$(Z,2)
240 INPUT "ADDRESS "; D$(Z,3)
250 INPUT "CITY/ZIP "; D$(Z,4)
260 Z=Z+1
270 PRINT : INPUT "MORE INPUT (Y/N)"; A$
280 IF LEFT$(A$,1) = "Y" THEN 220
290 END
- 70 -
Abacus Software IDEAS TO USE ON YOUR C-64
A short explanation: Z counts the number of records and
is incremented by 1 after each record is entered. INPUT of
fields 1 to 4 is restricted to a total length of 255
characters. The shorter the fields, the faster the program
will run later. The END statement at line 290 is just
temporary. Later we will write the statements for saving
the data.
The following program module "DATA STORAGE" is for use
with a datasette. The changes necessary to use this code
with a disk drive will be presented later.
290 REM DATA STORAGE
300 OPEN 1,1,1 "ADDR FILE"
310 FOR N=l TO Z
320 : FOR M=l TO 4
330 : PRINT#1,D$(N,M)
340 : NEXT M
350 NEXT N
360 CLOSE 1
The OPEN command should not be completely new to you. If
it is, you should review it in user's guide. The FOR/NEXT
loop with index variable N counts the records records and
loop N the fields. The OPEN command for the disk drive is
as follows:
300 OPEN 1,8,2,"ADDR FILE,S,W"
Good. At this point, I will to let you start entering
your names and addresses while I go and get a cup of
coffee. But don't forget to rewind your tape if you are
storing data onto a cassette.
- 71 -
Abacus Software IDBAS TO USB ON YOUR C-64
If you want to be able to get at your data again you
need a routine which differs in only two ways from the
input program. There must be a new OPEN command:
400 OPEN 1,1,O,"ADDR FILE"
and where the PRINTt command is in line 330, should be the
line
430 : INPUT#1, D$(N,M)
Try it out. As you can see, you won't see anything. The
addresses have been read from the cassette tape, but no
one told the computer that they should be displayed on the
screen. This is something that we can have the computer do
with the following simple loop.
490 REM OUTPUT/DISPLAY
500 FOR N=l TO Z
510 : FOR M=l TO 4
520 : PRINT D$(N,M)
530 : NEXT M
540 : PRINT : PRINT
550 NEXT N
As you can see we are always doing very similar things.
The N/M loops for storing, loading, and displaying are
nearly identical. The OPEN commands are the primary dif
ference. Since the program section for printing data onto
the printer also contains a loop, we might just want to
make some improvements.
- 72 -
Abacus Software IDEAS TO USE ON YOUR C-64
Wouldn't it be nice if these individual sections of
code could RUN one after the other. That would be great.
So let's design a menu with this in mind.
90 REM MENU
100 PRINT "MENU"
110 PRINT : PRINT : PRINT
120 PRINT "INPUT ADDRESSES =1"
130 PRINT "STORE ADDRESSES =2"
140 PRINT "LOAD ADDRESSES =3"
150 PRINT "DISPLAY ADDRESSES =4"
160 PRINT "END PROGRAM =5"
170 PRINT : PRINT : PRINT
180 INPUT "YOUR CHOICE";C
A menu looks good and is easy to program. I have also
added the routine END PROGRAM in order to have an emerg
ency exit to which I can go without losing data or the
program.
Without having said too much about it, I have included
a couple of improvements and also written the subroutine
that begins on line 500. I hope this is all riiSht with
you. The following listing contains the entire program for
use with a 1541 disk drive.
If you're using a datasette you can use the above
program modules for storing and loading. You will see that
inputting data from the diskette is not so simple. We have
to check the internal status variable ST. This shows the
end of the file. If we were to use the normal loop (N,M)
the disk drive would not know where the end of the file
- 73 -
Abacus Software IDEAS TO USE ON YOUR C-64
was and sooner or later would stop, not knowing what it
was supposed to do next. No error message would be given.
The procedure should then be used as given. It is also
universally applicable for every type of sequential file.
And now at last the program listing
10 rem **************
20 rem * address file *
30 rem **************
40 rem
50 dim d$(100,4)
60 poke 53281,08 : poke 53280,08
70 poke 53272,23 : print chr$(158)
80 rem
90 rem
100 print "" : print "MENU" : print
110 print : print
120 print "Input Addresses =1"
130 print "Store Addresses =2"
140 print "Load Addresses =3"
150 print "Display Addresses =4"
160 print "End Program =5"
170 print : print
180 input "Your Choice >";w
190 on w gosub 200,300,600,400,700
195 goto 100
200 rem input
210 print ""
220 z=z+l : print "Number : ";Z
230 input"First name ";d$(z,l)
240 input"Last name ";d$(z,2)
- 74 -
Abacus Software IDEAS TO USE ON YOUR C-64
250 input"Addresses ";d$(z,3)
260 input"City/Zip ";d$(z,4)
270 print : print : input"More Input";a$
280 if left$(a$,l) = "y" then 220
300 print ""
310 open 1,8,2,"addr file,s,wH
340 for n=l to z
350 : for m=l to 4
360 : print # l,d$(n,m)
370 : next m
380 next n
390 close 1
395 return
400 print "tf
410 input "Printer or display (P,D) ";a$
420 if a$="p" then open 4,4,2 : cmd 4
430 print ""
440 for n=l to z
450 : for m=l to 4
460 : print d$(n,m)
470 : next m
480 : print :print
490 next n
500 if a$O"d" then 520
510 close 4
520 get a$ : if a$ = "tf then 520
530 goto 100
600 open 1,8,2, "addr file,s,r"
610 n=l
620 input #l,d$(n,l),d$(n,2),d$(n,3),d$(n,4)
630 if st<>64 then n=n+l : goto 620
640 closel
650 z=n
- 75 -
Abacus Software IDEAS TO USE ON YOUR C-64
660 return
700 rem end
710 print ""
720 print "end"
730 for i=l to 1000 : next i
740 end
Just a couple of further comments. The color for this
display will, as you know, be set by the POKEs in line 60.
The POKE in the next line will select the upper and lower
case letters. A safety question can also be used in place
of the delay loop in line 730:
720 input "should program really be ended (y/n)" ; in$
725 if in$="n" then 100
730 end
If you answered the question with no, control goes back
to the menu. Now let's take a look at a word processing
system to go along with what we have already done.
- 76 -
Abacus Software IDEAS TO USE ON YOUR C-64
3.1.2 A very simple word processor
That's short, sweet, simple and particularly user
friendly. In other words really easy. Let's give it the
name:
****Easy Text 64****
With Easy Text we will be able to write a maximum of
ten pages, each with 20 lines per page. You will be able
to correct and look at your text as well as be able to
read from or store onto a cassette or diskette. You will
also be able to print your text out. Easy Text contains an
interface to the address program shown above. It is
written in the form of modules so you can easily modify
and improve the program with a bit of imagination. I would
be more than happy to see any improved versions.
10 rem* ***** *program start* ******
20 poke 53280,0 : poke 53281,0
30 poke 53272,23 : print chr$(30)
35 dim t$(200)
40 print chr$(147)
50 print ff* **************
60 print "* *
70 print "* EASY TEXT 64 *
80 print "* *
90 print M* **************
99 rem ********
100 rem * menu *
101 rem ********
- 77 -
Abacus Software IDEAS TO USE ON YOUR C-64
110 print : print : print
120 print "Input text =1"
140 print "Change text = 2"
150 print "Store text =3"
160 print "Load text =4"
170 print "Display text =5"
180 print "Print text =6"
190 print : print :"End =7"
200 print : print :print
210 input "Your Choice ";w$
220 w=val(w$) : if w>0 and w<8 then 240
230 print "": goto 220
240 on w gosub 300,600,800,1000,1200,1300,9000
250 goto 40
299 rem ***********
300 rem * input *
301 rem ***********
310 clr : print chr$(147);
320 print "";
330 input "Name (max. 15 characters) ";tn$
340 if len(tn$)>15 then print "" : goto 330
350 input "maximum line length 40";zm
360 if zm<10 or zm>40 then print "": goto 350
370 print "A page may have at most 20 lines."
380 input "max # of pages (10)";sm
390 if sm<l or sm>10 then print "": goto 380
400 bl=l: zl=l : sp=l
420 print chr$(147);:print "Page:";spc(7);"Line:"spc(8);"Column:"
430 print "####################################" : print;
440 print "Fl = new line/new page ";"F2 = stop";
450 pl=1030 : P2:1043 : P3=1058
460 poke pi,(int(bl/10))+48:poke pl+1,(bl-(int(bl/10)*10))+48
470 poke p2,(int(zl/10))+48:poke p2+l,(zl-(int(zl/10)*10))+48
- 78 -
Abacus Software IDEAS TO USE ON YOUR C-64
480 poke p3,(int(sp/10))+48:poke p3+l,(sp-(int(sp/10)*10))+48
490 print chr$(95);chr$(157);
495 get in$ : if in$="" then 495
500 if in$=chr$(137) then 590
505 if in$Ochr$(20)then 525
510 print chr$(32);chr$(157); : sp=sp-l
515 print chr$(157);chr$(32);chr$(157);
520 t$(zl)=left$(t$(zl),len(t$(zl))-l) : goto 450
525 if in$=chr$(133) then 560
530 if in$=chr$(13) then 550
535 t$(zl)=t$(zl)+in$
540 print in$;
545 sp=sp+l : if sp<zm then 450
550 print chr$(13); : t$(zl)=t$(zl)+chr$(13)
555 zl=zl+l :sp=l : if zl<20 then 450
560 print : print : print " *** page full ***"
570 get g$ : if g$ = tMt then 570
580 bl=bl+l : if bKsm then 450
590 got 40
599 rem *************
600 rem * changes *
601 rem *************
610 print chr$ (147);"";
620 print "";
630 input "which page ":in$
640 bl=val(in$) : if bl>20 then print "" : goto 630
645 print chr$ (147);: print"Text: ";tn$; : print " page: ";in$
650 zl=((bl-l)*20)+l
655 print t$(zl)
660 if t$(zl)O"ft then zl = zl + l
670 if t$(zl)="" or zl>20 then 690
680 goto 655
685 print : print
- 79 -
Abacus Software IDEAS TO USE ON YOUR C-64
690 input "which line " ;in$
695 in=val(in$)
700 if in=0 then 790
705 zl=((bl-l)*20)+in : k$=""
710 poke 214,14 : sys 58640
720 print t$(zl) : print
725 print chr$(95),chr$(157);
730 get in$ : if in$="" then 730
735 if in$=chr$(137) then 785
740 if in$Ochr$(20) then 760
750 print chr$(32),chr$ (157)
755 goto 725
760 if in$=chr$(133) then 780
765 k$=k$+in$
770 print in$;
775 got 725
780 t$(zl)=k$
785 print
790 input "Other changes (y/n) n";in$ : if in$="y"then 600
795 return
799 rem **********
800 rem * save *
801 rem **********
805 u$=""
810 print chr$(147),
820 input "drive ready n";in$
830 if in$="n" then print "": goto 820
840 print " ";tn$;" will be saved "
850 open 1,8,2,u$+tn$+"s,w"
860 for n=l to zl a
870 : print #l,t$(n)
880 next n
890 closel
- 80 -
Abacus Software IDEAS TO USE ON YOUR C-64
900 res
910 rem
915 open 15,8,15
920 input*15,ff,fb$,sp,se
925 closel5
930 if ff=63 then u$="@:":goto 850
940 print "Save/load complete" : for i=l to 1000 : next i
950 return
999 rem **********
1000 rem * load *
1001 rem **********
1010 clr : print chr$(147);
1020 input "Name (max. 15 characters) ";tn$
1040 print " ";tn$;" being loaded "
1050 open 1,8,2,tn$+"s,r"
1060 zl=l
1070 input #l,t$(zl)
1080 if st<>64 then zl=zl+l : goto 1070
1090 close 1
1100 print "Save/load complete" : for i=l to 1000 : next i
1110 goto 40
1199 rem *************
1200 rem * display *
1201 rem *************
1210 print chr$(147);"";
1220 input "which page l";in$
1225 bl=val (in$) : if bl>20 then print "": goto 1220
1230 print chr$(147);:print"text:";tn$;:print" page: ";in$
1235 print
1240 zl=((bl-l)*20)+l
1250 print t$(zl)
1255 if t$(zl)<>"" then zl=zl+l
1260 if t$(zl)="" or zl>20 then 1280
- 81 -
Abacus Software IDEAS TO USE ON YOUR C-64
1270 goto 1250
1280 input "Other pages (y/n) n";in$ : if in$ = tfy" then 1200
1290 return
1299 rest ***********
1300 rem * print *
1301 rem ***********
1310 print chr$(147) ;
1320 print "The text with name"
1330 print " ff;tn$;" ";"is printing."
1340 print
1350 input "Printer finished n";in$
1360 if in$="n" then print "": goto 1350
1370 oPen4,4,2
1380 zl=l
1390 if t$(zl)="" then 1440
1410 print #4,t$(zl)
1420 zl=zl+l : goto 1390
1430 print#4
1440 close4
1450 return
8999 rem *********
9000 rem * end *
9001 rem *********
9010 print ""
9020 print "*** END ***"
9030 print : print : print
9040 input "Text saved n";in$
9050 if in$O"y" then 800
9060 end
9999 rem ******* program end *******
50000 oPenl5,8,15
50100 input#15,ff,fb$,sp.se
50200 closel5
- 82 -
■•.""-' €
Abacus Software IDEAS TO USE ON YOUR C-64
50300 printff;fb$sp;se
- 83 -
Abacus Software IDEAS TO USE ON YOUR C-64
3.2 The professional thesis
#########################################################
* Requirements *
#########################################################
#########################################################
* Hardware *
#########################################################
#########################################################
* Commodore 64 *
* 1541 disk drive *
* Monochrome monitor *
#########################################################
#########################################################
* Software *
#########################################################
* *
* Word processing program *
* (i.e. TEXTOMAT) *
* *
#########################################################
#########################################################
* Previous requirements #
#########################################################
* *
* Experience in use of the *
* the C64 keyboard and disk drive *
- 84 -
Abacus Software IDEAS TO USE ON YOUR C-64
Just so there are no misunderstandings, you can ex
change the word thesis for any other type of written work
which you may have. It doesn't necessarily have to be any
kind of a scientific paper or written presentation. Even a
report on the trip taken by your bowling club may be large
enough to require the use of a (half) professional word
processing program. From my own experience I can say that
once you have gotten used to working with a word proces
sing system you won't be able to imagine how you ever did
it before.
This chapter is not meant to explain every move you
have to make to be able to use a word processing system.
That is to say no sentences such as "Take the program
diskette in your left hand and open the door to the disk
drive with your right." Information pertaining to the
operational details of the word processing program are to
be found in the program's manual. What I am trying to
accomplish here is to pass on a couple of tips and tricks
with which you should be able to get around problems that
might occur, and also how to make your work a little bit
easier. Detailed discussions are concerned with TEXTOMAT
from Abacus Software because that is the program with
which I wrote this book and with which I have the most
experience. Most information does however apply to other
word processing systems for the C64.
- 85 -
Abacus Software IDEAS TO USE ON YOUR C-64
Familiarization phase
When you insert the program disk into the disk drive
for the first time, you will not be very surprised by what
happens and will be easily able to manage it—if you have
your user's manual. Go quickly to the write mode and start
typing.
Before you begin with serious writing however you
should know the main functions of the program. You should
have tried:
-correcting a single character
-deleting a line
-inserting a line
-moving around in the text
-use of control characters
Stop! Control characters are a good bridge to the next
practice session. The control characters are there to
control the format of the text when it is printed. If you
are a TEXTOMAT user you can practice formatting. It is not
necessary to print a finished and formatted text each
time. The display function allows the written text to be
displayed on the monitor in the same format as it will
later be printed. You should already know about the imp
ortant parameters for formatting from our discussion in
section 2.1. My tip is: Try out every possible combina
tion. Then you can store the formats for later use.
We now need to concern ourselves with the printer. You
may perhaps have purchased the device for some work that
- 86 -
Abacus Software IDEAS TO USE ON YOUR C-64
you are going have to do immediately. That makes it very
simple. You learn how to use your printer along with the
word processing system. But this is only the case if you
are in the lucky position of having a word processing
system for which you do not (independent of which type of
printer you have) have to create a table. TEXTOMAT is from
a software standpoint already prepared for the Commodore
printer VIC 1525, and, in case you have one of these
printers, you need do nothing more. For the VIC 1526 and
other compatible printers there is also little to do. You
only have to store a table which is prepared in the prog
ram (look in the user manual under utility programs). For
all other printers, every character of the Commodore char
acter set must be brought in line with the respective
printer character. Fortunately this is a one-time thing.
In addition to this initial adjustment, a list of
control characters must be filled out and the secondary
addresses of the printer have to be set. The RS 232 inter
face may need to be adjusted (if you already have a 64 you
know what is meant by this).
Once you have tried everything out we now come to:
The preparation phase
One must be well prepared for big jobs. You know that
just as well as I do. The actual work with text requires
some effort. In comparison to working with paper and
pencil or typewriter, there are some differences when
using electronic word processing. I don't wish to make any
- 87 -
Abacus Software IDEAS TO USE ON YOUR C-64
hard and fast rules. I know only 2 basic types of word
processing users. Those who do the entire job at the
terminal and the others who write out the text by hand and
then enter it into the computer when it is finished.
Both types have their good and bad points. The last
method may save a good deal of difficult work in front of
the display screen. The other method uses much less paper
and you can make a hard copy of the text any time you
wish. I myself belong to the last group but this is not
the main reason why this method is the first one which
should be considered. It's just that this is the only way
in which the entire spectrum of possibilities can really
be fully utilized.
Before you begin to write, do you already have clear in
your head what you wish to accomplish? Or at least a clear
concept of the order in which things are to be written?
This can be extremely helpful. You should also write a
preliminary table of contents. It is a particularly good
idea to do this in its final form, that is to say, with
the correct chapter numbers and the correct order of the
main points. This table of contents then grows with the
completed work. Any changes in chapter headings or among
the different parts can then be immediately changed in the
table of contents. The idea is that when you have finished
inputting your text, your table of contents is also fin
ished. This type of index is also a good structure to use
for naming the different files on the diskette.
You probably have your glossary and your references in
the form of a card file. Have you ever thought of putting
these in the computer? Take a look at section 5.11. The
- 88 -
Abacus Software IDEAS TO USE ON YOUR C-64
footnote file is actually nothing more than a bunch of
notes. TEXTOMAT, for example, has an interface to sequen
tial files. You can take the remarks in your text directly
out of such a file.
One last point: use your computer as a tool and cont
inue to use your normal work methods. If you don't, you'll
be spending more time with the computer than you do. with
your actual work.
The work and writing phase
How you write, what rhythm you have, whether you prefer
to write at night or in your bathing suit, which radio
program you like to listen to while you are working, are
all dependent on you (I myself prefer country). But there
is one absolute in word processing, one thing which you
must do, and that is to save your text and save it often.
Here I am really speaking from experience: One not so
happy day I was really in good form and my fingers were
just flying over the keyboard. Everything that I was
writing had style and class (that's enough of compliment
ing myself...). In any event I sat at the terminal from
noon until about 2 o'clock in the morning and had only
saved the first 10 to 12 pages. What came next, of course,
was bound to happen. Night-blind, tired, and not thinking
quite straight, I wrote the last few words, took a look at
what I had done using the display function, and turned off
the computer, completely certain that I had saved every
thing for posterity on the diskette. And of course every-
- 89 -
Abacus Software IDEAS TO USB ON YOUR C-64
thing was gone. Frustration, anger at the computer and
myself. Since then I have gotten in the habit of doing 3
things:
- saving the document about every 100 lines.
- creating a new text file every 200-300 lines if this
agrees fairly well with the chapter divisions.
- making sure that at the end of each sitting, everything
up to that point has been saved and then creating a backup
diskette. This backup diskette then gets a write
protection tab placed on it. These are the foil strips
which are fastened over the little rectangular holes on
the edge of the diskette.
I would like to give a short explanation of this proc
edure. The storage methods which I first mentioned should
overlap. That is, the first 100 lines are saved and then
the 2nd 100 with the first 100 under the same name and so
on. It is then almost impossible for anything to be lost.
There are two reasons for my recommendation about the
length of the files: First, 300 lines are approximately
100 blocks of the diskette or 6 files per diskette. This
is a good usable amount. Enough was mentioned in section
2.1 about backup copies. As far as the order of the points
mentioned above is concerned, it is just one method of
eliminating errors in handling. I use the following proc
edure:
- opening ceremonies, up to going into the write mode.
- write documents with saves at regular intervals,
continue to write.
- save, look at what I have done and make corrections.
- repeat the above until everything is okay.
- 90 -
Abacus Software IDEAS TO USE ON YOUR C-64
- make final save, print out, check the contents of the
diskette, if everything is okay make a backup copy
- Put a write protect on the backup diskette
- Put the program, text and backup disks in a safe
place. Then when all that is done, quit.
You might be thinking that this is a good deal of work,
but what sounds like hours of moving diskettes back and
forth is in reality relatively easy. And when you become
accustomed to it you can do it without having to think
about it a great deal. It is in any event a lot easier
than rewriting an extremely long document. Did you notice
by the way that the work in progress stays in memory until
the computer is turned off? This is also an important
safety factor.
End phase
The text is complete, you are satisfied, and now you
want to print out your text. Two things may now be differ
ent depending on which type of word processing system you
have. The one is the automatic numbering of the pages, the
other is the insertion of footnotes and remarks. The page
numbering can be processed through the use of printer
control characters in some programs. In other cases the
numbers must be placed on the pages by hand (very frustra
ting). Footnotes can also be written by hand. A better
method is of course to use a footnote file. This is pos
sible in TEXTOMAT through use of a control character which
is used to chain files. The text, which is then stored on
the same diskette, can be loaded and appended to the main
- 91 -
Abacus Software IDEAS TO USE ON YOUR C-64
text during printing by use of this function. A word of
warning: If you wish to see the footnotes on the display
screen, you have to be careful that their total length
does not exceed the room which is available in the comp
uter's memory.
If you have your document finished and printed out
(several copies), you can relax and enjoy the fruit of
your labors. There is however something that you should
still do if you wish to save your work for posterity, not
only on paper but also on diskettes. Go through the backup
procedure one more time and in the following order:
1) printer parameters
2) the formats and the order in which they were used
3) the text files from first to last
That can, depending on the length of the job, also take
a couple of hours. But it's the best way to ensure that
your text has been saved in such a fashion that even after
everything that has been printed out has turned to dust,
you still have a way to correctly reconstruct your work.
Now I'd like to wish you a lot of inspiration and good
grades. If you have any questions, please write to me. I
am thankful for any criticism (compliments) and every new
idea.
- 92 -
Abacus Software IDEAS TO USE ON YOUR C-64
3.3 For* letters
####################################################
* Requirements *
####################################################
####################################################
* Hardware *
####################################################
####################################################
* *
* Commodore 64 *
* 1541 disk drive *
* Monochrome monitor *
* Correspondence-quality printer *
* *
####################################################
####################################################
* Software *
####################################################
*■ . *
* Word processor *
* Data management program *
* *
####################################################
- 93 -
Abacus Software IDEAS TO USE ON YOUR C-64
####################################################
* Previous Requirements *
####################################################
* *
* Use of keyboard and disk drive *
* *
####################################################
And now you are again going to be asked to play a role,
something which will probably not cause any great dif
ficulty for you, even if you have gone directly from the
front of the book to this chapter. You are to pretend that
you have own a toy shop specializing in model railroads.
By the way, did you really start with this chapter? If
so then please go back and read section 2.1. You'll save
yourself and me a lot of repetition.
In your new role, direct correspondence with your cust
omers has a very important function. It often occurs that
you have been able to dig up collections of rare locomo
tives or old time models. You also know that some of your
customers will do almost anything to get one of these rare
models. What you must do is write to them when you have
something to sell.
Using conventional methods you have 2 possibilities:
- You write each customer individually (possibly
writing to each with an personal letter).
- You write your offer, copy it and then fill in
the address by hand.
- 94 -
Abacus Software IDEAS TO USE ON YOUR C-64
The first possibility has the advantage that you can
offer the addressee exactly what he is looking for. You
must on the other hand do an awful lot of typing (or have
it done). The second variation has certain advantages as
far as speed is concerned. How would it be if we took the
advantages of both methods and combined them? It's pos
sible.
The prerequisite is a good, up-to-date, customer file.
That's what we are going to talk about first.
3.3.1 Multifunctional customer file
You can create such a file using DATAMAT from Abacus
Software. First, the input format (if you want to see
exactly how this is done, take a look at section 2.3). For
our example I would recommend the following format:
- 95 -
Abacus Software IDEAS TO USE ON YOUR C-64
Lukas-Games and Toys Customer File
( 1) Last name .Smith
( 2) First name .John
( 3) Title .Mr.
( 4) Street address .11 Main St.
( 5) City .Seattle
( 6) State .Washington
( 7) Zip .98011.
Customer Information
( 9) Last order on .30/.2/.84.
(12) Last offering on .29/.6/.83.
(15) Open invoice numbers .
(17) Specialization: Pre-war Maerklin HO-Locomotives
(18) Sells : Pre-war HO-Locomotives of every
type
The block "customer information11 is of course dependent
upon the particular type of business. In the case of our
shop it is interesting to know what customers might them
selves sell particular pieces of equipment. Date of the
last order or last offer can also be used as a search
criterium. DATAMAT will now begin to set up the file. The
input format shown has a total of 208 characters, index
field is 1 (the last name). All in all we can have 432
records as the maximum for our customer file. That of
course is not enough if we assume 2000 customers. All we
have to do then is to set up 5 files of 400 records each
using the same input format. To keep things simple we will
distribute the customers through the different files al-
- 96 -
Abacus Software IDEAS TO USB ON YOUR C-64
phabetically:
- A to F
- G to K
- L to P
- Q to U
- V to Z
This distribution may prove to be impractical in daily
use. It could be that the distribution by area of interest
would be more practical.
The selection of customers according to their special
wishes will also be taken care of. And now we can begin
with the input of data. We have 2 possibilities to get the
first list: First we can get a hard copy, using the f8 key
(print screen), of every record which was input or we can
get a complete list through the appropriate menu selec
tion.
Let us assume that for the time being, a list of names
and addresses of the customers will be sufficient. We will
then make the selection so that only the required fields
are shown, with 2 lines per record and 60 characters per
line:
♦Smith John
*11 Main St. Seattle 90811
With enough blank lines between the records, the list
is quite easy to read. Using this list we now check the
data to make sure that it is correct.
- 97 -
Abacus Software IDEAS TO USE ON YOUR C-64
The most important work for full use of the customer
file will be done by using the menu selection "Sorting."
You set up and store as many pointer files as you wish.
The main target of our selection will be the different
areas of interest of our customers. For example, we can
place all the customers who are interested in purchasing
pre-war Maerklin models in one file. In another we can
place all of those who wish to complete their collection
of N-gauge models, etc.
We can also place those with payments due in one file
and those who generally buy very large orders in another.
The only limits here are your requirements and your imag
ination.
I recommend that when you begin to use DATAMAT you try
out everything that could possibly be of interest to you.
3.3.2 A variable text file
"A letter is a letter," I can hear you say. "Why do we
need a file?" I'll let you in on a secret. There is no
exact, reliable information, but my own personal exp
erience has shown that out of 100 business (perhaps adv
ertising) letters, at least 30 are made up of standard
paragraphs. Not only "yours truly" pops up all the time,
but also longer paragraphs (see section 2.1). This is true
even if we select our letters from totally different firms
operating in different areas. How many portions of your
- 98 -
Abacus Software IDEAS TO USE ON YOUR C-64
business letters are repetitive? There are secretaries who
know the text of the letters their bosses are going to
dictate before they have even opened their mouths. You
might protest that you want to send individualized let
ters to your customers, but that is exactly what a good
word processing system can do.
Let's stay in our role and take a look at a typical
offer that a model railroad shop might send out:
John Smith
11 Main St.
Seattle, Washington 98011
Dear Mr. Smith,
During our last visit to the international model rail
road exchange in Luzern, Switzerland, it was possible for
us to purchase a large collection from a Swiss hobbyist.
Included in the many items of the collection are some
pre-war Maerklin locomotives and cars which will certainly
interest you. In particular, the following items:
1 XZY, serial no. 4711
2 ZYX, serial no. 1510 and 8623
15 freight cars of different types
11 second class passengers cars from the 009
- 99 -
Abacus Software IDEAS TO USB ON YOUR C-64
series
All pieces are in mint condition.
Our previous correspondence with you leads us to be
lieve that the items offered would fit very well in your
collection.
If your are interested in purchasing the items offered,
you may, without obligation, request photographs of the
above items.
Because of possible interest in the purchase of the
entire collection, this offer is only good until the 15th
of July. We will be looking forward to your reply.
Yours truly,
Lukas Model Railroads
[Signature]
Let's divide the letter into its individual parts.
First of all we have the address, which can be taken
directly from the customer file. The first portion of the
letter is too specific to be stored. This is also the case
with the next 3 paragraphs. The fifth portion of the
letter is the first one that might occur in other letters,
but it is almost too short to make it worth the trouble.
You might be thinking that the last paragraph is also not
one which would occur very often. The bottom line: This
- 100 -
Abacus Software IDEAS TO USE ON YOUR C-64
letter is not one which will be used again.
But wait. Let's assume that the collection also con
tains a couple of HO Old-Timer car models in which other
customers might be interested. To let them know, you
simply take the +letter, delete the third paragraph and
replace the information on the pre-war Maerklins with a
sentence about the Old-Timers. Then make corrections to
the list and to the information on the models and you have
your second letter finished. Let's take a look:
Henry B. Miller
705 Columbia Street
Alexandria, Virginia 22314
Dear Mr. Miller,
During our last visit to the international model rail
road exchange in Luzern Switzerland, it was possible for
us to purchase a large collection from a Swiss hobbyist.
Included in the many items of the collection are some
!!H0-Car models from 1937 to 1940 which will certainly
interest you!! In particular, the following items:
!!Plus:
Cars, Buses and trucks, some with historical ads—and of
special interest—a 1940 VW Beattle from Pirsche in Cam-
statt.
- 101 -
Abacus Software IDEAS TO USE ON YOUR C-64
All pieces are in good condition and require only slight
restoration!!
etc. etc.
Yours truly,
Lukas Model Railroads
[Signature]
It won't be necessary to go through the rest of this in
detail. But I think you have seen how few changes will be
required to the original letter. In spite of this, the
second letter is as individual as the first one (The
changes are indicated by the exclamation points).
What we have here is a classic example of what I would
call the variable extended letter, in which a form letter
is changed to meet the requirements of the addressee. The
other case in which word processing software comes into
use (in addition to the standard letter which we are not
going to discuss here) is the phrase file.
Everyone uses phrases in repetitive forms of address.
In some cases we are forced to do so (for example where
there is a question of liability or legal requirement to
do so). The question which we must ask ourselves is: "Are
these blocks of text numerous enough to warrant storing
them as an individual file?" Now we have to leave our role
playing. Something that is important for our model rail-
- 102 -
Abacus Software IDEAS TO USE ON YOUR C-64
road dealer Lukas might be completely useless for your
purposes. You must yourself know which phrases and text
come up often enough to make it worthwhile to save them.
It can be worthwhile to maintain a file of phrases and
standard terms for form letters that can be modified to
meet individual requirements.
3.3.3 Bringing text and data together
Let's stay with our example of the information letter
about the collection which we purchased. The first step
would be to write a standard letter. There are two pos
sible strategies: Either you write a form letter with free
areas that can later be filled in to meet individual
requirements or a letter which is intended for a part
icular group of customers and which can later be modified
for another interest group. How you do it is up to you.
Many people do not like to write without something to go
by.
You should now select the customers to whom you wish to
send the offering. You either do that through the pointer
file or, if your customer file is not too large, directly
out of the file.
A prerequisite for the first method is of course that
the pointer file can be easily identified. The name PI
does not give much indication of what its contents are. A
name such as "old maerklinHO" communicates much more in-
- 103 -
Abacus Software IDEAS TO USE ON YOUR C-64
formation.
And now we can begin to use our printer. The manner in
which the name and address are inserted in the letter is
explained in the TEXTOMAT user manual. Simply go through
the chosen pointer file and select (or change) the re
quired information.
The rest consists of folding, placing your letters in
the envelopes, and mailing. By the way: if you use enve
lopes with windows, you can avoid sending letters to the
wrong address, a not uncommon occurrence when using la
bels. This type of error can be very embarrassing in the
case of individual letters.
3.3.4 Conclusion
Our model railroad dealer Lukas has a large need for
individual advertising letters; you perhaps do not. It
could be however, that you send very similar letters to
many addresses. If this is the case, the use of a C64 with
word processing and database management programs may be
worthwhile. A couple of additional ideas:
- Create your standard forms (invoices, dunning
letters, bids, or offers) using the word processing
program.
- Maintain your library of standard letters with the
data management program.
- 104 -
Abacus Software IDEAS TO USE ON YOUR C-64
- Keep an up-to-date hard copy of your standard letter
library with exact information on where the text
files are stored.
- Keep copies of the letters that at first glance
seem a bit too individual to save. It may be
that you can use parts of them later.
Since this chapter is considerable longer than origin
ally planned, I will not make any additional comments. But
you will certainly gain experience through day-to-day use
that goes beyond the scope of what we have discussed here.
- 105 -
Abacus Software IDEAS TO USB ON YOUR C-64
4. Cooputations and planning
In section 2.2 we discussed the particular advantages
of the computer as far as speed, ease of use, and accura
cy go. As in every case where the machine can do something
particularly well, the question always arises, "How can I
best utilize these capabilities?" This chapter will give
you 5 answers to this questions. As you probably imagined,
money will play an important role. It is simply this: All
control of financial matters is a matter of talent. I
don't have this talent and that's one reason why I have a
C64 which helps me compensate for my deficiency.
In cases such as the construction costs calculations
shown in section 4.3, the computer can actually pay for
itself. Imagine that through the use of this program you
are able to get financing which saves you 2000 dollars
over the next few years. Wouldn't that be worth it?
The popular household bookkeeping systems are also real
savers. Anyone who knows where his money is going will
soon know where he can begin to save. This is also the
case with automobile costs. Using information from tests
in the car magazines, you can compute the approximate cost
per mile for the various models that you are considering
buying. This can be an important help in making a dec
ision .
One more thing: All programs are intended as sugges
tions. If you can, you should experiment and change them
until you have something which exactly meets your personal
- 106 -
Abacus Software IDEAS TO USE ON YOUR C-64
requirements.
- 107 -
Abacus Software IDEAS TO USE ON YOUR C-64
4.1 Household bookkeeping - Hints for designing your
own system
You are probably shaking your head and saying "Here
comes another bookkeeping system for the 64." There is
actually no excuse except that there are many different
starting point for an electronic household bookkeeping
system. Most of the program listings you can get your
hands on act as if the normal household should be admin
istered in the same way as a small company. There are
account numbers and discussions of credits and debits to
the point where you begin to get dizzy. And most of these
programs are based on accounting software. This is one
possibility, but let's take a look at another.
The simple way to a financial overview:
The main point is this! Household bookkeeping is there
so that we know where every dollar came from and where it
went. The principle is simple but there are individual
differences. Below you will find a check list which will
help you to design your individual household bookkeeping
system.
- 108 -
Abacus Software IDEAS TO USE ON YOUR C-64
******************************************************
* *
* Check-list for household bookkeeping *
* *
******************************************************
* *
* A) Questions *
* *
* 1) Number of regular sources of income? *
* (5 or less/more than 5) *
* *
* 2) Number of regular payments? *
* *
* 3) Number of sources for intermittent income *
* (10 or less/more than 10) *
* *
* 4) Number of payments made on a regular basis *
* (10 or less/more than 10) *
* *
* 5) Should all sources of income and payments *
* be summed for the total year? *
* (Yes/No) *
* *
* 6) Will amounts be entered more than once per *
* month? *
* (Yes/No) *
* *
* 7) Are statistics required *
* for the monthly sums? (Yes/No) *
* for all payments? (Yes/No) *
* *
* 8) Are the statistics to be represented in the *
* form of graphs? (Yes/No) *
- 109 -
Abacus Software IDEAS TO USE ON YOUR C-64
* *
* 9) Are the bank accounts to be automatically *
* controlled? (Yes/No) *
* *
Before actually beginning with the check list you
should first evaluate the questions. A decision for the
smaller values in question 1 through 4 should be counted
as No.
Nine Yes answers: You are in the wrong place here. You
don't need a household bookkeeping system. What you need
is a full-fledged accounting system. In your case it would
be best to purchase a standard software package.
Four or five Yes answers: If the number of your yes
answers is primarily a result of the number of transac
tions, you should continue reading. Information on how to
make your own simple household bookkeeping system can be
found in this section. On the other hand, if you answered
the questions 5 through 9 with yes, then you should cont
inue with section 4.1.2 after you have finished the check
points below.
Less than four Yes answers: You are very modest and
your program will accordingly be easy to write. Take a
look at the check points below. The following check list
is based on the idea that household bookkeeping can be
built as a relative file. This method seems to me to be
the most universal. You will find a complete listing in
the Anatomy of the 1541 Disk Drive written by Englisch &
Szczepanowski (an Abacus Software book). The program is
- 110 -
Abacus Software IDEAS TO USE ON YOUR C-64
completely documented and well explained. "What do we need
a check list for?" you might say. The answer: In order to
give you the possibility to individualize your book keep
ing system. For example you should be able to decide for
yourself whether you want to do without all the extras
and just have a simple input/output module as a program or
if you want to design a book keeping system with all the
bells and whistles (statistics, graphics, forecasting,
etc.).
Points 1), 2) and 5) are, independent of form, manda
tory for every household bookkeeping program. Point number
3 enhances the perspective and point 4 makes the results
more readable. If you opt for the basic version, you do
not even need a menu. The order in which the individual
parts of the programs are executed is built into the
programs themselves. You will see how you can put all this
together in the next section.
- Ill -
Abacus Software IDEAS TO USE ON YOUR C-64
* B) CHECK POINTS *
* *
* 1) Determine individual items *
* - determine number (maximum approx. 40 chars) *
* - determine name (maximum 20 characters) *
* - define the maximum length of the amounts *
* (for example the largest amount is *
* $100,000.00 = a field length of 9 chars) *
* - determine the input and output items *
* - number the items *
* - create a list of the items with their #'s *
* *
* 2) Monitor input/output *
* - input item number *
* - the item name will be output *
* - amounts for all 12 months will be output *
* - input month *
* - input amounts (positive or negative) *
* - new amount will be shown *
* - all items for each month will be output *
* - year total for each item will be output *
* - the month total for each item will be output *
* - the year total for all months will be output *
* *
* 3) Statistics and graphics module *
* - the output shown above will be shown in *
* the form of graphs *
* - as line charts *
* - as bar charts *
* - the amounts will be shown as a percentage *
* of total sums in the form of graphs ♦
* - as pie charts *
- 112 -
Abacus Software IDEAS TO USE ON YOUR C-64
* - as bar charts *
* - future values will be forecasted and extrapo-*
* lated in the line charts *
* *
* 4) Printer output *
* as in the display input/output *
* - additional output for all items *
* - all months and all sums in one print pass *
* *
* 5) Storage/recall *
* *
* 6) Menu *
* *
- 113 -
Abacus Software IDEAS TO USE ON YOUR C-64
4.1.1 And this is how it looks in practice
* Requirements #
* Hardware t
* *
* Commodore 64 *
* 1541 disk drive *
* Monochrome monitor *
* *
* Software #
###################################################
* None *
###################################################
###################################################
* Previous requirements *
###################################################
* *
* The more, the better *
* *
###################################################
- 114 -
Abacus Software IDEAS TO USB ON YOUR C-64
You know the threat hanging over your head? That I will
attempt to explain to you what a relative file is. (We are
just starting with a little joke). A relative file is
something different than a sequential file. You have seen
the term relative file in this book several times. You
know what sequential means—one after the other. Let's
take a look then at the following example of a sequential
file:
***Fruit Price List***
1) Apples 0.65 /lb
2) Pears 1.03 /lb
3) Strawberries 2.85 /lb
4) Dates 4.20 /lb
5) Grapefruit 1.30 /lb
6) Raspberries 2.70 /lb
7) Ginger 1.85 /lb
8) Red currants 2.50 /lb
9) Cherries 2.65 /lb
10) Mandarines 0.50 /lb
11) Nectarines 1.05 /lb
12) Regular oranges 1.25 /lb
13) Plums 2.15 /lb
14) Quince 3.05 /lb
15) Gooseberries 1.05 /lb
16) Grapes 3.00 /lb
17) Walnuts 1.00 /lb
After we have created this list with a small program,
- 115 -
Abacus Software IDEAS TO USB ON YOUR C-64
we come to the really dramatic portion: storage on a disk
ette. The line numbers are only there for output and
display and will not be saved. You want to see how it
looks when stored on a diskette?
apples*0.65pears*1.03strawberries*2.85*dates*4.20*
grapefruit*l.30*raspberries*2.70*ginger*l.85*red
currants*2.50*cherries*2.65*mandarines*0.50*
nectarines*1.05*oranges*1.25*plums*2.15*
quince*3.05* etc, etc.(the "*" indicates the RETURN at
the end of each input)
The file "Fruit Price List" is in sequential form. We
don't just want to store the file but we also want to be
able to bring it onto the display screen. Simple. Within
the program is contained the instruction to print the name
of the fruit in column 4 and the price in column 20. No
sooner said than done. The list shown is displayed on the
CRT. Now let's say you wish to change a price—the one for
grapes. You switch to input mode, move the cursor to
column 20 and change the price and then save what you have
just done. Simple.
Now consider the following situation. The price list
contains not 17 but 1000 different articles and they don't
fit on the display screen - possibly not even in the
computer's memory. The file must then be brought into the
storage one piece at a time. Each record must be compared
to the search criteria and then the next piece of the file
read and so on.
Unfortunately, if grapes are the 999th record, the
search can take quite a while.
- 116 -
Abacus Software IDEAS TO USE ON YOUR C-64
Is it possible to tell the computer that it only has to
look from record x to record y? This idea has just occur
red to you. You are on the right path. This.is the prin
ciple of a relative file. Every record has its own posi
tion within the file which is indicated by its relative
distance from the beginning of the file (that is the
source of the name). "But what happens if the records have
different lengths?" you might say, "How can that be acc
ounted for?" A valid point. This is why a relative file
may not have different record lengths. If necessary, all
records and fields must be brought up to the standard
length by padding with blanks.
The fruit price list for a relative file on a diskette
then looks something like this:
*01*apples *0.65*02*red currants *2.50*
The records and the fields which they contain all have
the same number of characters and are numbered. Every
record can then be called up by use of its record number.
The record number is equal to the distance of that record
from the beginning of the file since all the records are
of the same length. To make that clear we will show one
more example:
Let us assume that the diskette is like a board in a
shelf and on this board there is a line drawn every five
inches. The departments which we have thus created are
numbered:
/01 /02 /03 /04 /05 /
- 117 -
Abacus Software IDEAS TO USE ON YOUR C-64
We are now going to put bananas in these different com-
partments. Sequential bananas, which all have different
lengths.
Banana 1 =
Banana 2 = /++++++/
Banana 3 =
Banana 4 =
etc.
Only the second banana fits into a single compartment,
the others are all too long. Let's say that the computer
is now to look for banana number 3 and we have told it
that every banana is in a compartment by itself (we have a
relative file). The computer will go to compartment number
3 and you can see for yourself what happens.
Contents of compartment 3 = 1111111 (approx. 4 in. banana)
The contents of compartment number 3 are approximately
4 inches of banana. This may not be tragic for the banana
but as far as the amounts in our household bookkeeping
system are concerned we can get some interesting results
such as $5.00 July D5 (or something similar).
The basic principle of a relative file is clear, as are
the advantages. How then is the interested user to install
such a file? At first glimpse it does not seem to be
possible, since the BASIC 2.0 that is implemented on the
C64 does not have any commands for the management of
relative files. We can still do it, however. It is a
little complicated, but possible.
- 118 -
Abacus Software IDEAS TO USE ON YOUR C-64
The Anatomy of the 1541 Disk Drive mentioned above
shows exactly how a relative file can be built and man
aged. I will concentrate here only on the basics.
First we must consider how we are going to define the
individual records of our bookkeeping file (we will call
this file HHB from now on). We have to choose between 2
variations:
- one record = one month
resulting in 13 records
(one for each month plus one for the year sum)
- one record = one account
The method chosen has little effect either on the speed
of access or on the ease of use. For our example let us
take the second variation. The record will then be defined
as follows:
1) Name of item (20 characters)
2) January amount (10 characters)
3) February amount (10 characters)
4) March amount (10 characters)
5) April amount (10 characters)
ll)0ctober amount (10 characters)
12)November amount (10 characters)
13)December amount (10 characters)
14)Year total (12 characters)
The record length is then 153 (20 + 12*10 +12+1 for
RETURN). The total number of records is equal to the
- 119 -
Abacus Software IDEAS TO USE ON YOUR C-64
number of accounts. Just for the sake of argument let's
say that we have 36. We then open a relative file with the
following command:
OPEN 1,8,2,"HHB,L"+CHR$(153)
The L indicates to the operating system of the disk drives
(DOS = Disk Operating System) that HHB is to be opened as
a relative file. The CHR$(153) indicates the length of the
record. To free all the records to be written, the last
record must contain CHR$(255). Without this procedure each
record must be individually freed after input.
In the case of HHB the records do not have to be writ
ten in order from 1 to 36, but can be written in any
order. To ensure however, that the rent for January isn't
put in the salary for March, the write head must first be
properly positioned. That is, a pointer must be set to the
correct field and the correct record. This is done with
the following command.
PRINT#2,"P"+CHR$(2)+CHR$(0)+CHR$(20)+CHR$(1)
Let's explain these fields one after the other. "P" is
the command for positioning; The value in the first CHR$
is the channel that will be used for transferring the
data, in this case 2, because channel 1 will be required
for the file. The next 2 CHR$'s contain the record number.
It must be distributed between 2 CHR$'s because the lar
gest value which a CHR$ can contain is 255 and a relative
file may contain up to 65535 records. Since we will remain
under 255, the first of these 2 CHR$'s does not concern
us, it remains 0. In the second we place a 20. This means
- 120 -
Abacus Software IDEAS TO USE ON YOUR C-64
that we wish to do something with record number 20. The
last CHR$ contains the number of the character within the
record that we wish to read or write. It should always
contain 1 since we can only process one entire record if
we start with the first character. Let's make a practical
program out of our theoretical explanation:
100 NR=36: REM NR = NUMBER OF RECORDS
110 OPEN 1,8,2,"HHB,L,M+CHR$(153)
120 OPEN 2,8,15 : REM COMMAND CHANNEL FOR POSITIONING 130
130 PRINT#2,flPtl+CHR$(2)+CHR$(0)+CHR$(36)+CHR$(l)
140 PRINT#1,CHR$(255)
150 CLOSE 1 : CLOSE 2
The file is opened and 36 records of 153 characters
each have been freed. The game starts.
I am now going to leave you with this information. If
you have read the entire chapter up to this point you are
probably capable of writing a program which will meet your
requirements. If this is not the case I would again recom
mend the Anatomy of the 1541 Disk Drive.
- 121 -
Abacus Software IDBAS TO USE ON YOUR C-64
4.2 Figuring auto costs
###################################################
* Requirements *
###################################################
###################################################
* Hardware *
###################################################
* *
* Commodore 64 *
* 1541 disk drive *
* Monitor *
* *
###################################################
###################################################
* Software *
###################################################
* *
* None *
* *
###################################################
###################################################
* Previous requirements *
###################################################
* *
* Good to very good knowledge *
* of BASIC *
* *
###################################################
- 122 -
Abacus Software IDEAS TO USE ON YOUR C-64
It is a good thing that I don't drive my car as chao
tically as I write BASIC programs, otherwise my car in
surance payments would be the size of a small mountain.
Confused listings may have made a few people mad, but no
one has ever been injured by them.
A short time ago, during a trade of software, I proudly
gave a fellow computer hobbyist a program I had written
myself, called "Auto Costs". After many tries at getting
the thing in gear, he gave up and hasn't spoken to me
since. That's too bad; he was really a nice guy. But how
could he know that the program had an allergic reaction to
an input of 0 and would always answer with a "DIVISION BY
ZERO ERROR." The only way to get around this was to use an
input of 0.001 instead of 0.
I have however, learned from my mistakes. First I read
some books on professional programming and secondly, I
took what I read there and put it into practice. You can
see the results below.
The program idea
The program "Auto Costs" is intended for the collection
and storage of all costs associated with a private auto
mobile. Additionally, the total cost and the cost per mile
will be computed on a monthly and yearly basis. The re
sults will then be stored in a sequential file.
- 123 -
Abacus Software IDEAS TO USE ON YOUR C-64
Problem analysis
What should the program accomplish?
1) Data input
2) Data computation
3) Data output
4) Data storage
The program flow is then as follows:
1) Data input
2) Input month number
3) Output month data
4) Input item number
5) Input amount
6) Compute new data
7) Output new month data
8) Compute total amounts for year
9) Store data
10) Exit program
A menu is not required. The sequential file is organized
as follows:
-13 records (for the 12 month and the total year)
-each record containing 9 fields
1) Gasoline cost
2) Repair
3) Care and maintenance
4) Reimbursements
- 124 -
Abacus Software IDEAS TO USE ON YOUR C-64
5) Total mileage
6) Tax
7) Insurance
8) Total costs
9) Cost per mile
Input aask:
00
01 * *
02 * Automobile Costs *
03 * *
04
05
06 Monthly output for (month)
07
08
09 (1) Gas =$
10 (2) Repair =$
11 (3) Care/maintenance =$
12 (4) Reimbursement =$
13 (5) Total mileage =Mi
14
15 (6) Tax =$
16 (7) Insurance =$
17
18 (8) Total costs =$
19 (9) Cost per mile =$
20
21
- 125 -
Abacus Software IDEAS TO USB ON YOUR C-64
22 ( ( Input Line ))
32
24
File Design:
Filename dat.autocosts
Program name . autocosts
File type seq.
Records : 13
Fields 9 each
Record length : 65 characters
The fields:
No. Contents Type Length Name
1 Gas N 8 ak(m, 1)
2 Repair N 8 ak(m, 2)
3 Care/maintenance N 8 ak(m, 3)
4 Reimbursement N 8 ak(m, 4)
5 Total mileage N 6 ak(m, 5)
6 Tax N 7 ak(m, 6)
7 Insurance N 7 ak(m, 7)
8 Total costs N 8 ak(m, 8)
9 Cost per mile N 5 ak(m, 9)
- 126 -
Abacus Software IDEAS TO USE ON YOUR C-64
Required formulas:
1. Tax and insurance
Question:
"Amount of tax = $?" and "Method of payment (12,6,4,1)?"
Formula:
Amount of tax = is
Method of payment = zw*
Portion per month ak(m,6) = is/zw*
Amount per year ak(13,6)= 12*(is/zw*)
The formula is the same for insurance
2. Total costs and mileage costs
Input amount =b
Total mileage =ak(m,5)
Total costs ak(m,8) = ak(m,8)+b
Costs per mile ak(m,9) = (ak(m,8)/ak(m,5))*100
The same goes for year-total formulas.
In addition we need routines to round the dollar am
ounts and to convert the values into numbers with two
places after the decimal.
The program listing
The lights are dimmed, the curtain is raised: the prog
ram ******** AUTO COSTS ************ will now be shown.
- 127 -
Abacus Software IDEAS TO USE ON YOUR C-64
Sit down in a quiet place and go through the lines of code
one at a time (with a glass of wine at your fireplace,
perhaps?). The comments are at the end of the program.
1 rem ***************************************
2 rem *** auto costs **** ver. 3.10 ***
3 rem *** from the **** date 5/28/84 ***
4 rem *** data becker / abacus software ***
5 rem *** idea book **** ***
6 rem ***************************************
7 rem
8 rem
9 print chr$(147) rem clear screen
10 poke 53272,23 rem upper/lower case
15 poke 53280,5 : poke 53281,5 rem crt color=green
20 print chr$(149) rem letters = brown
25 dim ak(13,9) rem process data
30 gosub 11000 rem input line
35 rem
40 input "is this the first run? ";w$
45 if w$ = O"y" and w$O"Y" and w$O"n" and w$O"N"then 30
50 if w$="y" or w$="Y" then 50000
55 rem
60 dim d$(13,9) : rem store data
65 u$="@:" : rem overwrite file
70 print chr$(147) : rem clear screen
80 print chr$(149) : rem color of letters=brown
90 rem
95 rem
100 rem +++++++++++++++ start program +++++++++++++++++
110 rem
120 gosub 30000 : rem read data
130 gosub 10000 : rem input/output format
- 128 -
Abacus Software IDEAS TO USE ON YOUR C-64
140 gosub 11000 : rem set input line
145 rem
150 input "Which month (0=End) H;m
155 rem
160 if m=0 then 340 rem store data
170 if m>13 then 140 rem new input
180 gosub 12000 rem name of month
190 gosub 20000 rem print month
200 if m=13 then gosub 22000 rem input year
210 if m=13 then 140 rem input month
220 gosub 11000 rem input line
225 rem
230 input "Which category (0 to 5 / 0=end) ";r
235 rem
240 if r>5 then 220 : rem new input
250 if r=0 then 140 : rem input for month
260 cs=1026+40*cz(r) : rem category pointer
270 poke cs+34,188 : rem set pointer
275 rem
280 if r<5 then input "Input amount = $ ";b
290 if r=5 then input "Input mileage = Mi ";b
295 rem
300 gosub 21000 rem compute month total
310 gosub 20000 rem output month data
320 poke cs+34,32 rem clear category pointer
330 goto 220 rem input section
340 gosub 31000 rem store data
350 gosub 11000 rem input line
355 rem
360 input "Exit program";w$
370 if w$O"y" and w$O"Y" and w$O"n" and w$O"N"then 450
380 if w$="n" or w$="N" then 100
385 rem
- 129 -
Abacus Software IDEAS TO USE ON YOUR C-64
390 end
400 rem ++++++++++++ program ettd
500 rem
505 rem
9000 rem ++++++++++++ subroutines
9005 rem
9010 rem
10000 rem +++++++++++ input/output format +++++++++++++++
10005 rem
10010 print chr$(147);
10020 print "****************************************♦»;
10030 print "* *";
10040 print "* Automobile Costs *";
10050 print "* *";
10060 print
10070 print
10080 print "Monthly costs for
10090 print : print
10100 print "(1) Gas = $
cz(l)=9
10110 print "(2) Repair = $
cz(2)=10
10120 print "(3) Care/maintenance = $
cz(3)=ll
10130 print "(4) Reimbursement = $
cz(4)=12
10140 print "(5) Total mileage = Mi
cz(5)=13
10150 print "(6) Tax = $
cz(6)=15
10160 print "(7) Insurance = $
cz(7)=16
10170 print "(8) Total costs = $
- 130 -
Abacus Software IDEAS TO USE ON YOUR C-64
cz(8)=18
10180 print "(9) Mileage costs = $
cz(9)=19
10300 return
10990 rem
10995 rem
11000 rem +++++++++++++ input line ++++++++++++++
11005 rem set input line
11010 poke 214,22 : poke 211,0 : sys 58640
11020 return
11040 return
11990 rem
11995 rem
12000 rem ++++++++++++++ month names
12005 rem
12010 data "January" , "February", "March"
12020 data "April", "May", "June", "July"
12030 data "August", "September"
12040 data "October","November"
12050 data "December", "The year 84"
12060 rem
12070 for n=l to 13
12080 : read n$
12090 : if n=m then 12120
12100 next n
12120 mo$=n$ : restore
12130 poke 214,6 : poke 211,26 :sys 58640
12140 print " ";
12150 poke 214,6 : poke 211,26 : sys 58640
12160 print mo$;
12170 return
12990 rem
12995 rem
- 131 -
Abacus Software IDEAS TO USE ON YOUR C-64
20000 rem ++++++++++++ output monthly data ++++++++++
20005 ff$=" " : rem empty string
20010 for r=l to 9
20020 : ak=ak(m,r)
20040 : if r=5 then dz$=str$(ak) :dz*=len(dz$): goto
20060
20050 : gosub 40000
20060 : poke 214,cz(r) poke 211,28 :sys 58640
20070 : print ff$
20080 : poke 214,cz(r) poke 211,36-dz* :sys 58640
20100 : print dz$
20110 next r
20120 return
20990 rem
20995 rem
21000 rem +++++++++++++ compute monthly data ++++++++++++
21005 if r=4 then b=b*(-l) : rem reimbursement
21010 ak(m,r)=ak(m,r)+b
21015 if r=5 then 21030 rem miles driven
21020 ak(m,8)=ak(m,8)+b rem total costs
21030 gk=ak(m,8) : mi=ak(m,5) kk=gk/mi
21040 ak(m,9)=int(kk*100)/10 rem costs per mile
21050 ak(13,r)=ak(13,r)+b rem year total
21055 if r=5 then 21070
21060 ak(13,8)=ak(13,8)+b
21070 gk=ak(13,8) : mi=ak(13,5) :kk=gk/mi
21080 ak(13,9)=int(kk*100)/10
21090 return
21990 rem
21995 rem
22000 rem +++++++++++ year input
22005 rem
22010 gosub 11000 : rem input line
- 132 -
Abacus Software IDEAS TO USE ON YOUR C-64
22020 input "Input tax or insurance "; w$
22025 rem
22030 if w$O"y" and w$O"Y" and w$O"n" and w$OttNtl then
22010
22040 if w$="n" or w$="N" then return
22100 rem input tax
22105 print "
22110 gosub 11000 : rem input line
22120 input "Tax amount =$ "; is
22130 gosub 11000 : rem input line
22140 input "Method of payment (12,6,4,1) = "; zw%
22150 ms=is/zw* : rem monthly portion
22160 for m=l to 12
22170 : ak(m,6)=ms
22175 : ak(m,8)=ak(m,8)+ms
22180 next m
22190 ak(13,6)=12*ms : rem yearly tax
22200 rem input insurance
22205 print "
22210 gosub 11000 : rem input line
22220 input "Insurance amount =$ ";iv
22230 gosub 11000 : rem input line
22240 input "Method of payment (12,6,4,1) = "; zw*
22250 mv=iv/zw% : rem monthly portion
22260 for m=l to 12
22270 : ak(m,7)=mv
22275 : ak(m,8)=ak(m,8)+mv
22280 next m
22290 ak(13,7)=12*mv : rem yearly insurance
22300 return
22990 rem
22995 rem
30000 rem ++++++++++++ read data
- 133 -
Abacus Software IDEAS TO USB ON YOUR C-64
30005 print "One moment please"
30010 print : print "File being loaded"
30015 open 1,8,2, "dat.autocosts,s,r"
30020 m=l
30030 for r=l to 9
30040 : input#l,d$(m,r)
30050 next r
30060 if st<>64 then m=m+l :goto 30030
30070 close 1
30080 for m=l to 13
30090 : for r=l to 9
30100 : ak(m,r) = val(d$(m,r))
30130 : next r
30140 next m
30150 print chr$(147);
30160 return
30990 rem
31995 rem
31000 rem ++++++++++ store data
31005 print chr$(147) : print"0ne moment please1
31010 print : print "File being stored"
31015 open 1,8,2,u$+"dat.autocosts,s,w"
31020 for m=l to 13
31030 : for r=l to 9
31035 : pr$=str$(ak(m,r))
31040 : print#l,pr$
31050 : next r
31060 next m
31070 close 1
31080 print chr$(147);
31090 return
31990 rem
31995 rem
- 134 -
Abacus Software IDEAS TO USE ON YOUR C-64
40000 rem ++++++++++++ rounding & decimal display +++++++
40005 rem rem example ak=1.2345
40010 dl = int(ak*1000) rem dl=1234
40020 d2 = dl/10 rem d2=123.4
40030 d3 = int(d2) rem d3=123
40040 d4S = (d2-d3)*10 rem d4=4
40050 : if d4£>=5 then d5S=l rem round up
40060 : if d4S <5 then d5S = 0 rem round down
40070 d3 = d3+d5* rem d3=123
40080 ak = d3/100 rem ak=1.23
40090 rem decimal format
40100 dz$= str$(ak) : dz*=len(dz$)
40110 for p=l to dz*
40120 : p$=mid$(dz$,p,l) rem find decimal point
40130 : if p$ = ".ft then 40160
40140 next p
40150 dz$=dz$+".00tf rem dz$ contains no point
40160 if p=dz*-2 then 40180 rem dz$ 2 positions after
decimal
40170 if p=dz*-l then dz$=dz$+"0"
40180 dz*=len(dz$)
40190 return
50000 rem ++++++++++++ initialize file
50005 rem
50010 for m=l to 13
50020 : for r=l to 9
50030 : ak(m,r)=0
50035 : ak(m,5)=l
50040 : next r
50050 next m
50060 gosub 31000
50070 open2,8,15
50080 input#2,ff,fb$,sp.se : rem read error channel
- 135 -
Abacus Software IDEAS TO USE ON YOUR C-64
50090 close 2
40100 print chr$(147)
50110 print chr$(144);ff;fb$;sp;se
50120 if ff=O then 40 : rem everything o.k.
50130 if ff<> 63 then end : rem file exists
50140 print chr$(147); : rem clear screen
50150 print "A file already exists"
50155 rem
50160 print "with name AUTOCOSTS "
50170 print : print "If file should be deleted"
50180 print "press the * key."
50190 get g$ : if g$="" then 50190
50195 rem
50200 if g$= "*" then u$="@:" : print chr$(147) : gosub
31000
50210 get g$ : if g$="" then 50210
50220 if u$="@:" then 60
50230 end
Consents
Line 00001 to 00095: The program introduces itself and
does its housekeeping. In addition it will want to know if
this is the first time the program is being run. If yes,
any existing files will be overwritten.
Line 00100 to 00390: This is the main section. Every
thing will be controlled from here.
Line 10000 to 10995: Input format. It is universal
enough to be used both for input and output. The variable
cz(n) controls the cursor during the input and output.
- 136 -
Abacus Software IDEAS TO USE ON YOUR C-64
Line 11000 to 11995: Input line. Cursor goes to line 22
when this subroutine is called up. The required input can
then be typed in and control jumps back.
Line 12000 to 12995: The names of the month. This is a
small luxury in which the number of the month will be
translated to the full name and placed in the correct
position of the input/output mask.
Line 20000 to 20995: The data for the month will be
taken out of the table, rounded, and reformatted to have
two digits after the decimal point. Everything will then
be placed in the input/output mask.
Line 21000 to 21995: The calculations. This is where
the required calculations are performed.
Line 22000 to 22995: Input of yearly information. The
tax and insurance amounts will be requested and prorated
over the months.
Line 30000 to 30990: The data is loaded from the
diskette. In the second half of the subroutine, the input
data will be placed into the working storage area.
Line 31000 to 31990: The storage of the data. This
should no longer be unfamiliar to us.
Line 400000 to 40190: Rounding up and rounding down.
The rounding routine is a bit long because I tried to make
the procedure clear. This would normally be done with a
standard rounding formula. In the second part of the
- 137 -
Abacus Software IDEAS TO USE ON YOUR C-64
subroutine all amounts which either have one place after
the decimal or which have no places after the decimal are
reformatted to have 2 positions after the decimal point.
Line 50000 to 50230: Control is passed to this portion
of the program only when it is run for the first time. It
is here that the file is prepared and it is also here that
additional utility programs for formatting, reading the
directory, etc. can be built in.
One final word: The program is written in such a way
that it can be shortened almost as much as you want. You
can of course build in additional subprograms. You will
find interesting tools in all of the previously mentioned
Abacus Software books.
- 138 -
Abacus Software IDEAS TO USB ON YOUR C-64
4.3 How high will the Monthly payments be?
##########################################♦##*#####
* Requirements *
* Hardware *
#####################♦#####♦***********************
*
* Commodore 64
* 1541 disk drive *
* Monochrome monitor *
* Dot-matrix printer *
* *
* Software *
* None *
* *
############################################*####*♦
##♦#######♦###################**#***•********•***•*
* Previous requirements *
##########################################♦######*#
* *
* Good to very good knowledge *
* of BASIC *
* *
###################################################
- 139 -
Abacus Software IDEAS T0 usg 0N y0UR c_
We are now going to ask a portion of the readers to
leave the room. Anyone who just won the lottery, whose
rich uncle just died, or who has just received a handsome
portfolio of Commodore stock should please leave the room.
You are probably never going to build a house.
If you are one of those remaining I will assume that
first, you plan to build a house at some time in the
future and that, second, you are neither rich nor poor. In
other words: You are probably going to have to finance
your new house and one question is plaguing you: "Can I
really afford to? How high are my monthly payments going
to be?"
This calculation is actually not very complicated. You
will need a big pad of paper, a pencil and a lot of time.
It takes a couple of hours, even with heavy use of a
pocket calculator to get the monthly information for,
let's say, the next 25 years. Your C64 can do it a lot
quicker.
You will now jump ahead 2 or 3 pages and look for the
listing. But I am going to have to disappoint you. No
listing. I simply thought that in the meantime you are
probably far enough along that you can write such a
program yourself. Section 4.2 in particular contains a lot
of the information that you need.
No fear, however, I am not going to leave you totally
alone. We'll proceed in the same way as we did with the
program "Auto Costs."
- 140 -
Abacus Software IDEAS TO USE ON YOUR C-64
The program idea
The program "construction cost" will calculate the
monthly payments which are required to pay off the int
erest and principle of a house loan. Tax advantages have
not been considered. Results can be shown either on the
display or printed out and can also be stored on the
diskette.
Problem analysis
What should the program be able to do?
1) Collect data
2) Calculate data
3) Output data
The program should proceed in approximately the following
manner:
1) Input of the loan amount
2) Input of a down payment, if any
3) Input of interest
4) Input of the beginning date of the payments
5) Input of the ending date of the payments
6) Input of the beginning payment
7) Computation of monthly interest cost
8) Computation of monthly payment
9) Computation of total debt at the beginning of
- 141 -
Abacus Software IDEAS TO USE ON YOUR C-64
the month
10) Computation of total debt at the end of the month
11) Computation of payment to principle for the year
12) Computation of total interest payments per year
13) Computation of the annuity (=interest + principle per
year)
14) Computation of debt at the beginning of the year
15) Computation of debt at the end of the year
16) Output of the data from 8) and 11) thru 15)
17) Print out of the data from 16)
18) Storage of data
Calculations which are to be saved can be re-run with
different parameters, if required. Particularly because of
this option, the program should have a menu.
MENU Construction Costs
(1) Data input
(2) Change parameters
(3) Recalculate
(4) Print results
(5) Store results
(6) End the program
Display format
We need several input masks for our program. We will
have to develop two for the actual data.
- 142 -
Abacus Software IDBAS TO USE ON YOUR C-64
Format of data input
* *
* Construction Costs Calculations *
* *
Input
Loan = $ •
Down payment = $
Interest rate = %
Amortization rate = %
Loan starts month .. year
Loan ends month .. year
Format for data output
* *
* Construction Costs Calculations *
Output of results
(1) (2)-*
Year
- 143 -
Abacus Software IDEAS TO USB ON YOUR C-64
Beginning debt =
Annuity =
Monthly payment =
Interest/year =
Amortization =
Remaining debt =
My idea was that the year number would be entered in
the output format in the program. We then fill in the rest
of the format for this year and for the previous year. The
values for the next two years would then be shown after
any key had been hit. Unfortunately the 64 can show only
40 character per line. Otherwise you could make columns
out of the lines and show the values of all the years
underneath each other.
We also require a format for saving and loading:
* Construction Costs Calculations *
(Saving/loading)
Name of the calculation : [filename]....
One moment please
[filename].... is being loaded (or saved)
- 144 -
Abacus Software IDEAS TO USE ON YOUR C-64
List of variable names and file design
Name Size Type Length Contents
db $ 0-999999.99 N max . 9 Amount of loan
gh smaller than db N max . 9 Down payment
zs % 0.01-19.99 N max . 5 Interest rate
aj 1900-2099 N max . 4 Start year
am 1-12 N max . 2 Start month
ej 1900-2099 N max . 4 Ending year
em 1-12 N max . 2 Ending month
mb N max . 8 Monthly payment
ms N max . 4 Monthly interest
tr N max . 4 Beg. amort, rate
X 50 N Max no. years
jz(x) N max. 9 Yearly interest
jt(x) N max. 9 Yearly amortization
an(x) N max. 9 Annuity
ja(x) N max. 9 Beg. debt
je(x) N max. 9 End debt
12 N Month
y
raz(y) N max. 8 Monthly interest rate
■t(y) N max. 8 Monthly amortization
ma(y) N max. 9 Month beg. debt
me(y) N max. 9 Month end debt
md$ A max. 15 Filename
Read file A 14 Title of format
dd$(l)
dd$(2) Store file A 15 Title of format
- 145 -
Abacus Software IDEAS TO USE ON YOUR C-64
er 5 N Input section
ce(5) N Section line
ar 7 N Output section
ca(7) N Section line
In order to avoid "REDIM'D ARRAY ERROR" a file will be
dimensioned for 50 data fields. If your bank will make
loans of longer than 50 years, you can change the value of
x.
Required formulas for calculation
We need quite a few formulas. First the recalculation
of the input values. Theoretically it would be nice if we
had a constant monthly payment and could choose an input
at the beginning for the amortization rate. It is even
simpler if only 1 of the 2 values is input and the other
one is calculated. We will however keep with the fact that
the amortization rate can be chosen and that the monthly
payment is variable. And now the formulas:
zs = zs/100
tr = mt/100
ins = zs/12
mb =db*(zs+tr)/12
ja(aj) = db-gh
jz(aj) = ja(aj)*zs
jt(aj) = 12*mb-jz(aj)
an(aj) = jz(aj) +jt(aj)
ma(am) = ja(aj)
- 146 -
Abacus Software IDEAS TO USE ON YOUR C-64
mz(am) = ma(am)*ms
mt(am) = mb-mz(am)
me(am) = ma(am)-mt(am)
ma(am+l) = me(am)
mz(am+l) = ma(am+l)*ms
...etc., up to 12
je(aj) = me(12)
jz(aj) = mz(am)+mz(am+l)+. .-Hnz(12)
jt(aj) = mt(am)+mt(am+l)+. .+mt(12)
je(ej) = 0
me(em) = 0
And that's it. You may have wondered why there are two
different calculations for the yearly interest and yearly
amortization rate. The reason: The beginning and ending
year of the loan have (from a financial standpoint) less
than 12 months and must therefore be calculated different
ly than an entire year. You can of course act as if every
year has a different number of months, the number of which
must be input for the calculations. You then need a form
ula which adds the monthly values together.
So now you can turn on your computer and start with the
coding. If you should have any problems, grab some of the
books that can give you a helping hand (such as the C64
books from Abacus Software).
- 147 -
Abacus Software IDEAS TO USE ON YOUR C-64
4.4 First, second, third
* Requirements *
* Hardware *
* *
* Commodore 64 *
* 1541 disk drive *
* Monochrome monitor *
* *
* Software *
* *
* DATAMAT *
* *
###################################################
###################################################
* Previous requirements *
###################################################
* *
* None *
* *
###################################################
- 148 -
Abacus Software IDEAS TO USE ON YOUR C-64
Strange: an unexpectedly high percentage of computer
fans have an active sport as a first or even second hobby,
even though they are normally considered to be the stay-
at-home type. Tennis, bicycle riding, and jogging seem to
be the favorites. Sport clubs are always glad to have
computer owners as members because of the many areas in
which they can be of help: membership files, form letters,
and dues are all areas in which they can assist. One of
the high points in the life of a hobby programmer might be
the annual sport festival, possibly a marathon run. This
gives our hobby computerist a chance to show what he can
do.
Teenage computer hackers who are members of various
clubs have also been able to make a little money on the
side by writing programs to take care of some of the
administration. Although there is a danger that we might
cause this source of income to dry up, we at least want to
present an easy problem solution for our sports festival.
The case
The Colorado Sports Club has 300 members and offers
training in gymnastics, judo, track and field, as well as
soccer and handball. The club has always tried to be a
trend setter. Even before jogging got to be an "in sport,"
there was a long tradition of jogging at the club and this
year is the 10th marathon run in which men, women, and
children of all ages will be taking part in a 42 kilo
meter run. In order to make the event more interesting,
- 149 -
Abacus Software IDEAS TO USE ON YOUR C-64
the club is going to try to get some prominent marathon
runners to participate. The local television station has
also agreed to broadcast the event and it is hoped that
this will make the name of the club and the city better
known.
The statistics
-approximately 1200 runners
-40% of which are women and girls
-5 different age categories
The problem:
Not only because of the television but also in order to
make the whole event more professional, the club has
promised that all results will be available within one
hour after the last marathon runner has crossed the finish
line. Every participant is also going to receive a cert
ificate which shows, in addition to the total running
time, his overall placement and the placement within the
various groups. There are then approximately:
-13 result lists
-and over 1000 certificates
- 150 -
Abacus Software IDEAS TO USE ON YOUR C-64
The solution
One of the club members, John Key, is a senior at a
local high school and also the owner of a C64. At one of
the meetings on the marathon run, he maintained that with
his computer the administrative work of the marathon
could be easily handled.
"All participants will be stored in a file and the
start number which is given at registration will be used
as an index field. This start list has the following
purposes:
- to allow the participants to check their own data
- to allow the time keepers and judges to collect the
various data"
...as John explained this to the other club members, no
one understood a word. Since no one wanted to admit he
didn't know what John was talking about, they made him the
assistant chairman of the organization committee and de
cided to give him free rein with the data processing. John
then began with the preparation. The first thing he did
was to design the input format.
This had to contain the following fields:
- starting number
- last name
- first name
- sex
- age group
- 151 -
Abacus Software IDBAS TO USE ON YOUR C-64
- running time
There were no other special requirements for the input
format, as it was to be used only with the monitor.
Sporting Event
start number 00012
name Kaminiski
first name Judy
m/f
class senior
result .. h .. min .. sec
The format requires 55 characters which means that
theoretically we can get 600 records on one diskette.
Since we are sure that the thing is really going to go,
we set up 1200. John has chosen to call the format "Sport
ing Event," because he feels he may be able to use it for
other events.
The first job of the format is to collect data from the
registrants. The Colorado Sports Club has been doing a lot
of advertising and as a result, 80* of the participants
have registered by mail. This has been a big help in that
all the data can be input and checked in peace and quiet.
The result field will be filled in with periods. This is
only necessary in the first record as it can be easily
included in the subsequent records by hitting RETURN.
The first afternoon at the terminal convinces our
friend that the input of data is sort of a dumb job and
- 152 -
Abacus Software IDEAS TO USE ON YOUR C-64
that some of the other club members should help him.
Shortly afterwards, a couple of friendly helpers are found
and after 3 sittings of about 1 and a half hours each, all
1000 participants have been entered.
The pointer file
How are we going to set up the 13 results lists? Quite
simply: Through use of menu selection file sorting we will
filter the required list, in which only registrants who
fulfill particular criteria will be selected. We will have
pointer files for:
1) all participants (the total list)
2) all female participants
3) all male participants
4) youth group B, male
5) youth group B, female
6) group A children, male
7) group A children, female
8) age group 20 to 30, male
9) age group 20 to 30, female
10) age group 30 to 40, male
11) age group 30 to 40, female
12) seniors, male
13) seniors, female
These pointer files should have names with which they
can be identified, i.e. "startmale30" or "startfemalesen
." These somewhat strange looking names are caused by the
fact that names can have a maximum of 50 characters. In
addition, an alphabetically sorted total list should be
printed out. John now needs to invest about 3 hours in the
- 153 -
Abacus Software IDEAS TO USE ON YOUR C-64
creation of the pointer files. This investment in time
will ,however, give him the capability of printing out the
evaluation of the marathon within several minutes after
its completion.
The print-out
This must also be prepared before the beginning of the
race. John gives some thought as to how the result list
for the starters should look in the menu selection (file
evaluation). He comes to the conclusion that an evaluation
is enough. The information about tjtie individual partici
pants can then be printed on a single line. This looks as
follows:
Marathon Run 84 Colorado Sports Club
Number First name Last name Class Results
00001 Christa Vahlensiek F 30-40
00002 Heliodoro Salazar M 30-40
00003 Adi Pumann M 20-30
00004 Erika Pumann F 20-30
00005 Sabine Pumann F B-Youth
00006 Karl Norpoth M Senior
00007 Norbert Stampfer M A-Youth
00008 Corinna Pietsch F B-Youth
00009 Rainer Bartel M 30-40
00010 Patrick Schiefelbein M B-Youth
- 154 -
Abacus Software IDEAS TO USE ON YOUR C-64
00011 Paul Schiefelbein N Senior
00012 Edeltraud Kaninski F Senior
00013 Petra Petel F 20-30
As you can see, the starting list is sorted by starting
numbers and in the results column, we only have a place
holder at the present time. This will be replaced when the
time keepers fill in the times.
The printer is now going to get into the action. With
help of the evaluation, multiple copies of the total list
and the different age group listings will be printed. You
can of course print as many as you wish for posting or for
distribution to the press and television or for the list
of events, etc. For the actual marathon, only the total
lists are relevant.
Time keeping
We now come to the problem of big numbers. We have to
realize that the system would break down, with or without
a computer, if the results of 1200 participants had to be
sequentially (one after the other) entered in the system.
This is why whole companies of time keepers are normally
used to control a particular segment of a run.
In the case of marathon runs which are evaluated with
out a computer, it can easily happen that the time keepers
cannot keep up with the work because too many partici
pants stumble over the finish line at the same time. This
is why in the case of standard events of this type, re-
- 155 -
Abacus Software IDEAS TO USE ON YOUR C-64
serve time keepers are available who can be called upon in
an emergency.
John has thought up something special to get around
this problem. His time keepers all have (loaned) printing
pocket calculators. Nothing is going to be computed on
them, but the starting number and the total time can be
printed out. The strips of paper will then be brought by
courier to the computer and further processed.
After all the runners who have not given up finally
cross the finish line and their times have been written
down, we go to the:
Results lists
In order to save the index, the DATAMAT menu selection
"exit program" will now be chosen. We then proceed to the
sorting of files. Sort criteria number 1 will be total
elapsed time and a list will be created, for the moment
only in the computer, which is sorted from the fastest
runner at the beginning to the slowest at the end.
The results list can now be created using the old
(hopefully, stored) evaluation files, exactly as we
created the starting list at the beginning. This takes a
little time but is considerably faster than any method
which does not use a computer.
And now we have things under control. The lists are
more or less finished and only need to be printed out. The
- 156 -
Abacus Software IDEAS TO USE ON YOUR C-64
total time between arrival of the last runner and the
handing out of the first results: around 45 minutes.
The certificates
Now comes the part which requires the most manual
labor. This comes from the fact that DATAMAT cannot auto
matically compute the placings of the different runners.
But when such good looking forms are available (see the
next page) that's not really a problem. A certificate can
be written with the word processing system TEXTOMAT, which
has an interface to DATAMAT. TEXTOMAT reads the DATAMAT
files and puts the data in the correct positions in the
text. These certificates should of course be printed on
good paper with a club emblem and all that goes with it.
P.S.: The 10th marathon run was a total success. The
weather was good and an enormous crowd fenced the road.
The television station broadcasted a 5 minute report in
the sport show.
Everything went to everybody's satisfaction. The only
breakdown in the computer sector was when John forgot to
run the subprogram "END" after the last participants data
had been entered. The index file was destroyed and had to
be created again the next day, but aside from that, every
thing went well. The list of results was available within
after 1 hour after the end of the marathon and the ap
proximately 1050 runners had reached the finish line.
Everyone received their personal certificate 3 days later
in the mail. Next time John is going to have 2 computers,
- 157 -
Abacus Software IDEAS TO USE ON YOUR C-64
4 floppies and 2 printers. One will be a daisy wheel
printer for the certificates. In this way the printing of
the certificates can be done at the same time as the list
are being printed.
- 158 -
Abacus Software IDEAS TO USE ON YOUR C-64
********************^^
*+* 10th Colorado Sports Club Marathon Run *+*
*+* 88888888888888888888888888888888888888 *+*
*+* *+*
*+* *+*
*+* Successfully participated in the Marathon *+*
*+* with an elapsed time of..h.../min.../sec *+*
*+* and placed *+*
*+* *+*
*+* *+*
*+* *+*
*+* *+*
*+* *+*
*+* *+*
*+* in class *+*
*+* *+*
*+* *+*
*+* *+*
*+* //////////////// Place *+*
*+* *+*
*+* overall *+*
*+* *+*
*+* Aspen, Colorado 14 May, 1984 *+*
*+* *+*
*+*
*+* Club President Secretary *+*
*+* *+*
******************^^
- 159 -
Abacus Software IDEAS TO USE ON YOUR C-64
4.5 A calculator, too
########################################################
* Requirements *
########################################################
########################################################
* Hardware *
########################################################
* *
* Commodore 64 *
* Storage medium *
* Monitor *
* *
########################################################
########################################################
* Software *
########################################################
* *
* None *
* *
########################################################
########################################################
* Previous requirements *
########################################################
* *
* Knowledge of Commodore BASIC *
* *
########################################################
- 160 -
Abacus Software IDEAS TO USE ON YOUR C-64
Do you have a pad of paper or even a pocket calculator
sitting next to your C64? Rather aggravating now that you
have this expensive computer with practically unlimited
calculating power in front of you. But if you want to
compute "cos (90-(36*1024)/49)" you have to do it by hand.
Frustration can be a great incentive and in this case we
have been very creative.
Many roads lead to Rome. And there are a lot of roads
which lead us to a software calculator on the 64. The
methods are different but the problem is always the same:
The input/output and calculation of arithmetic calculation
with their required values should be performed in a simple
and user-friendly manner.
The different solutions
1. The keyboard simulates a pocket calculator.
2. The keyboard is displayed on the monitor and the input
is accomplished through the movement of the cursor.
3. Subprograms in machine language can be written and
called up while the BASIC program is running
- 161 -
Abacus Software IDEAS TO USE ON YOUR C-64
1. Keyboard - Hand calculator
This calculator is capable of doing the basic arith
metic calculations. It can round the results and it can
store them as constants. Individual inputs into the sto
rage area can be deleted.
10000 rem ***c64 as a calculator
10010 poke 53281,0 : poke 53280,0
10020 poke 53272,23 : print chr$(150)
10030 u$=" -+-+-+-+-+- Calculator -+-+-+-+-+-"
10040 print chr$(147);
10050 print u$ : print
10060 print "To which position after the decimal
should";
10070 print "rounding take place"; (1-8 ; 9= no
limit)";
10080 input in$ : in=val(in$) : if in>0 and in<10
then 10100
10090 goto 10040
10100 print chr$(147); : print u$ : print
10110 sm$=""
10120 get t$ . if t$="" then 10120
10130 t=asc(t$)
10135 if t=43 or t=45 or t=42 or t=47 then 10310
10140 if t$=chr$(136) and sm$="" then sm=0 : k=0 :
goto 10100
10150 if t$=chr$(133) then k=sm : gosub 10500
10155 if t$=chr$(134) then t$=str$(k) : goto 10300
10600 if t$=chr$(135) then gosub 10500
10170 if t=46 then 10300
- 162 -
Abacus Software IDEAS TO USE ON YOUR C-64
10180 if t<48 or t>57 then 10110
10300 print t$; : sm$=sra$+t$ : goto 10120
10310 op=val(sm$) : print chr$(t); : print tab(10)"=";
10320 if t=43 then sm=sm+op
10330 if t=45 then sm=sm-op
10340 if t=42 then sm=sra*op
10350 if t=47 then sm=sm/op
10360 if in<>9 then gosub 10400
10370 print sm
10380 got 10110
10400 sm=(int(sm*10/vin+0.5))/10/vin
10410 return
10500 print tab (20) "Constant="; k
10510 return
Proceed as follows: Input the first operand and hit the
"plus" key, input the second operand and the operation
(+,-,* or /) and you will see the results on the screen.
The results will be placed in the constant storage if you
push the Fl key. The F3 key is used to read and the F7 key
to delete the contents of the constant storage area.
Incorrect results can also be set to 0 with the function
key 7.
2. Monitor-cursor-calculator
A couple of details just to whet your appetite: A
graphic representation of a pocket calculator will be
displayed on the monitor and the different fields can be
chosen using the cursor keys in much the same way as a
- 163 -
Abacus Software IDEAS TO USE ON YOUR C-64
"mouse" is used. Results are then presented in a simulated
display. The whole thing looks very professional. It is,
however, considerably too complicated to explain here or
to give a program listing.
3. Machine language routines-calculator
Surprise! The 64 already has a built-in pocket calc
ulator. "But where?" you might ask. The answer: The BASIC
interpreter has a routine called "FRMEVL," which exactly
fulfills the requirements of our pocket calculator. You
can't, of course, simply type in GOTO $AD9E. You have to
include the operating system routine in a machine language
program. In addition you need the addresses of the dif
ferent routines for the arithmetic calculations. How this
can be accomplished can be read in two Abacus Software
books, The Anatomy of the Commodore 64, which requires a
good knowledge of the computer up to and including the
operating system, and The Machine Language Book of the
Commodore 64, which provides information on programming in
assembly language.
- 164 -
Abacus Software IDEAS TO USE ON YOUR C-64
5. Data of all types
You can fill in all kinds of forms, full of data of all
types. You can then number the forms and fill shelves full
of files with them. You can of course also keep track of
your data with your Commodore 64.
From chapter 2.3 you know all the things you can do
with data management software. Actual examples will in
crease our knowledge in this area. Just so that you're
prepared in advance, the following program ideas are based
entirely on the use of the software package DATAMAT from
Abacus Software. I have simply found no comparable product
for a similar price. You can of course purchase other data
management programs, but why buy a Rolls Royce when a VW
bus has more room for luggage?
All the applications discussed are concerned with
amounts of data which meet the requirements of the average
household. If your requirements are greater, you will
sooner or later have to move up to other hardware and as a
result, more powerful software. Parallel to this of course
is the increase in costs.
DATAMAT is relatively inexpensive and requires only a
1541 disk drive and a printer. Since these prerequisites
are applicable to most program ideas, we will be able to
do without a block title "Requirements."
There are probably a couple of ideas here for you that
you have been subconsciously waiting for. Browse through
- 165 -
Abacus Software IDEAS TO USE ON YOUR C-64
this chapter and see what you find of interest.
- 166 -
Abacus Software
IDEAS TO USE ON YOUR C-64
5.1 Recipe file for hobby cooks
I don't know whether it's good or bad, but one of the
first ideas that I had for an application of DATAMAT was
to make a personal cook book file. You should know that my
culinary art is well known and that my homemade noodles
are really sensational. So I got a fresh start and for my
first step designed an input format. Much to my dismay
however the program answered with "Record too long." Okay,
a couple of lines shorter won't be a big problem.
RECIPE FILE
(01) RECIPE : !Spaghetti w/ meatsauce !
INGREDIENTS
(02) !Hamburger.vegetables
(03) Ibroth.red wine.tomatoes
(04) !cream cheese.onions
(05) !garlic.spaghetti.oil
(06) '.salt, pepper, basil
(07) {Preparation : fry meat.
(08) !Pour liquid on
(09) lonions, garlic and
(10) !all vegetables and tomatoes
- 167 -
Abacus Software IDEAS TO USE ON YOUR C-64
(11) For !04! persons
(250) Characters/record: 150 records;
index: field 1)
As you can see, this is no way to write a recipe. A
limit of 253 characters per record is simply too small.
What are we are going to do now? We simply have to find
another starting point which we will now explain in steps.
A recipe normally contains two parts: A list of the
ingredients and a description of how to put them together.
How are we going to divide these two parts? An example:
Your wife (husband) brought a couple of colleagues home
after the office party. They are all hungry and know that
there is always something good to eat at your place. Your
honor as a chef is on the line. In the refrigerator you're
able to find two lonely eggs, a little butter and a piece
of cheese. In the pantry is a can of asparagus and one of
pineapple. There is also bread.
You go quickly to your C64, load DATAMAT and the file
"ingredients." A selected list of all the recipes that you
can make with what you have on hand is displayed. "But I
can't go to the computer every time a guest comes," you
might now be saying. You don't need to. The work described
above can of course be done beforehand. We will come back
to this point again.
You pick a recipe out of the list and write down the
- 168 -
Abacus Software IDEAS TO USE ON YOUR C-64
name. Now you load the file "preparation" and print out
the required information.
It is of course nonsense in such a situation to have to
go to the computer. Let's now however take a look at how
we can set up a recipe file.
File "ingredients"
The ingredients can be elected quite easily using the
following input format:
Recipe (1) Ingredients
(01) NAME {Spaghetti with meatsauce
(02) FOR 104! PERSONS
INGREDIENTS: AMOUNTS
(03) Spaghetti/oil !2.2 lbs
(05) Hamburger Steak !.44 lbs
(07) onions/garlic !approx. 2/1
(09) tomatoes I 1 can
(11) carrots/leeks/celery/ !
(13) broth/red wine I 3/4 1.
CONDIMENTS
- 169 -
Abacus Software IDEAS TO USE ON YOUR C-64
(15) SALT y PEPPER y MUSTARD n
(18) PAPRIKA n NUTMEG y
(20) OTHER I ;
(21) HERBS basil/parsley ! !
(22) and oregano ! •
(251 Characters/Records; 100 Records; Index: Field 1)
The input fields for the condiments require little
room. If they had to be fully written out, you would need
approximately 20 more characters per record and we would
have again reached our limit. Change the input format to
meet your taste (in both meanings of the word).
File "preparation"
We are going to store the actual recipes in this file. The
input format:
Recipe (2) PREPARATION
(01) NAME {Spaghetti
(02) FOR 104! PERSONS
PREPARATION
(03) Jbring water to boil
(04) ! add salt
- 170 -
Abacus Software IDEAS TO USE ON YOUR C-64
(05) Sand a little oil
(06) Icook spaghetti
(07) land then rinse off
(08) Itoss spaghetti in pan
(09) Jwith a little melted butter
TIMES
(10) ! ! FOR PORTION ! !
(11) : : : s
(12) : i :
(13) ! 8-9! TOTAL
(231 Characters per record; 100 records; index: field 1)
And here again we have a room problem. You can figure
out yourself how to get around it.
Selection and printing
You have hopefully already entered your recipes be
cause—as you can probably imagine—we are now going to
get some use from then. There is no need to sort anything
in advance as we don't have any fields the sorting of
which would give us any benefit. The selection however may
be worthwhile. You can for example set up an "egg file."
This should contain all meals in which eggs play the main
role. You can also select by portions of the name, for
example basic recipes or salad, soups etc.
- 171 -
Abacus Software IDEAS TO USE ON YOUR C-64
All these pointer files (if you don't know anymore what
a pointer file is take a look at section 2.3) can be
printed now, in any order with other selection criteria.
(This is also a term which was used in section 2.3).
Another pointer file can be used to create your table of
contents.
As in all other data processing problems, it is better
to try it out than to just read about it.
- 172 -
Abacus Software IDEAS TO USE ON YOUR C-64
5.2 Getting organized in the deep freezer
A little creative chaos never hurt anyone, say many
people. And I must say that they are right, in my opinion.
In our day-to-day activities, however, things are a little
bit different.
Let's take for example our deep freezer. "John, where
did you put the pork chops in the deep freezer?" "At the
bottom on the right-hand side, Mary." And Mary digs
through the cold packages, gets her fingers frozen, and
loses her appetite for pork chops. It would of course be
good if we had a little bit of organization, at least in
our freezer. But you know how it is with good inten
tions. . . .
This type of search is not particularly pleasant. The
following DATAMAT example can give us a some help, how
ever.
Let's imagine the average deep freezer owner. Let's say
we have a household with 5 persons, located in the coun
tryside on a small farm. The head of the household is
middle-aged and isn't afraid to butcher a pig himself once
in a while. Since we also have a good-sized vegetable
garden, the deep freezer is usually full.
Two situations are typical: the butchering of the pig
and the month of May (with strawberries and asparagus). We
then have a good deal to put in the freezer. Up till now
- 173 -
Abacus Software IDEAS TO USE ON YOUR C-64
this was done as follows: Everything was placed in the
appropriate plastic bags. A label was written and put on
and then everything went into the freezer. All information
on this label is also in the input format which we are now
going to present.
DEEP FREEZER
(1) Number : 0030!
(2) Contents : asparagus
(3) in bunches
(4) Amount : 010! Weight:
(5) Frozen on 1051101!184!
(6) Good until : n: :oi; :84:
Location in Freezer: ! 5A
Now we have half a pig, 20 pounds of strawberries, and
a lot of asparagus well preserved. Four months later we
have the discussion between John and Mary described above.
Let's say that John has a '64. Then everything is a
little different. First of all, the labels can be written
by the computer and secondly, John can do a lot of other
things with his "freezer file."
Let's say John sets up a newly sorted file of the
freezer contents which is sorted by date of expiration.
This could be printed in a monthly list and hung up in the
- 174 -
Abacus Software IDEAS TO USE ON YOUR C-64
kitchen. Nary will always know what has to be eaten next.
And how does it work? As follows:
Prerequisites
- File "freezer contents"
- Stored index (see DATAMAT USER MANUAL!!)
Procedure:
- Load DATAMAT
- Select "Sort file"
- Enter name of file
- Enter name of format
- Select "Sort" from the command line
- Enter "01" in the field expiration date/year
- Enter "02" in the field expiration date/month
- Enter "03" in the field expiration date/day
- Press fl
- Select "run" from the command line
- Select name for sorted file
- Save new file
- Select "File selection"
- Enter file name
- Enter mask name
- Answer the question "Should an already existing..."
with "n"
- Enter line length 80
- Delete and move fields as required
- Enter title
- 175 -
Abacus Software IDEAS TO USE ON YOUR C-64
- Press fl when done
- Answer the question "Should an already existing
pointer file...'1 with "y"
- Enter name of pointer file
- Print as required
You now have the list of the contents of your freezer
sorted by the expiration date.
***********************************
Freezer contents
***********************************
11 15 84 002 lbs Asparagus 03a
09 21 84 001 lbs Strawberries 03b
09 28 84 008 pcs Pork chops Ola
06 01 84 004 prtn Beef stew Ola
Oh yes, in my input format I still have the field
"location." I probably should explain what I mean by that.
It was my idea that the freezer could be divided into
sections according to its coordinates and the packages,
cans, and bags placed accordingly. As my freezer only
consists of the top part of my refrigerator I haven't been
able to try this out. Perhaps you can test the principle
for me and let me know your experience.
- 176 -
Abacus Software IDEAS TO USE ON YOUR C-64
5.3 Vegetable garden calendar
Garden and computer—they really don't go together too
well, do they. There are, however, cases in which these
two items can go hand in hand. In view of the fact that
these cases occur rather seldom I'll keep this chapter
quite short.
Anyone with a garden usually has a feeling for when and
where he should plant his vegetables and what care they
require. Should any of our readers have a garden which
they love but still don't know exactly how to go about
taking care of, DATAMAT can give you some help.
Your file could be called for example "garden." The
record contains the names of the different plants as well
as the information on their care which can be taken from
any good garden book. Sort your file by date and you will
have a calendar for the care and maintenance of your
garden. It is as simple as that.
For the owners of large gardens, files which contain
the information of which bed is to get fertilizer or to be
otherwise worked on help maintain an overview of the
required work. By the way: Greenhouses have used computers
for this purpose for a long time; anything that is good
enough for them should be good enough for us.
Farming is one area in which little use of computers
has been made to date. This is something which will chan
ge. So-called part-time farmers, for example, can already
- 177 -
Abacus Software IDEAS TO USE ON YOUR C-64
make good use of a home computer: data on the amount of
harvest, prices, costs, and so on, can easily be collected
and processed with the appropriate software.
One idea which partially belongs in chapter 6 but which
I would like to pass along now is this: If you know what
crop rotation means then you will also know that if this
method is to be used successfully, it is necessary that
data be collected over years (if not decades) as to what
crop was planted in what bed. Make a drawing of your
garden showing the crops planted. Computer graphics can
also be of use if you are planting a new garden.
I will now leave you with these tips and I'm sure
you'll come up with some of your own ideas from what you
have read.
- 178 -
Abacus Software IDEAS TO USE ON YOUR C-64
5.4 An inventory for a small company
My brother-in-law is a self-employed painter and when
ever I have the time, I give him a hand. One day we were
just getting ready to take some material out of his stock
room when he complained that he never exactly knew what he
had on hand. "Don't you keep an inventory list?" I asked
him. "Of course, but how am I supposed to keep track of
left-over paint or half a role of wall paper? I wouldn't
be doing anything but writing lists."
And that's how I got the idea how to misuse DATAMAT for
a very simple inventory control system. If my brother-in-
law should one day increase the size of his company and
hire a couple of employees, he'd have to purchase profes
sional software anyhow. At least he will have already had
his initial "EDP shock."
The data for the inventory would be entered and updated
weekly. The inventory list which results is not only the
documentation for the material on hand, it is also used as
a formula for input. This cycle agrees with that which
was done without a computer as the stock room is cleaned
up every Saturday.
One remark: The file only includes that material which
was not completely used and cannot be totally invoiced to
the customer. I'll show you a portion of the list:
- 179 -
Abacus Software IDEAS TO USE ON YOUR C-64
Material list - Leftovers
****************************************
Wallpaper type 6A
3 1/2 rolls 1 rolls Leftover from
02/21/84 07/01/84 Ewing Oil
21.00 12.00 const, site
Something else for workers who forget things:
Let us assume that you are a plumber and are going to lay
a water pipe into a customer's garden. Do you know off the
top of your head which materials and which tools (except
for the normal ones) that you have to take with you? No?
You simply write yourself some checklist which covers
every possible case that might come up before you go to a
customer and then you can check these items off point by
point.
For example:
Order : Painting and wallpapering
Material: Paint (
Tarps (
Masking paper (
Glue (
Tools: Large roller (
Small roller (
- 180 -
Abacus Software IDEAS TO USE ON YOUR C-64
Corner brush
Sponge
Paint pail (2)
Water pail
Small pail
(for glue)
A simple example, of course, but my knowledge in this
area is not adequate for more complicated examples.
Conclusion: With the Commodore 64 and appropriate soft
ware, any self-employed worker can get used to working
with a computer. When things get a little bit bigger so
that a personal computer is required, it can take care of
bookkeeping, personal administration, and the invoicing
and dunning letters. Bids and offers can also be made,
including the required calculations, charts, and plans.
- 181 -
Abacus Software IDEAS TO USE ON YOUR C-64
5.5 Your personal health records
Health - that's a serious topic and I'll try to keep my
jokes to a minimum. Everyone is going to be sick some time
or other. In most cases it is only a cold, but other times
possibly something more serious. Hopefully it will never
be anything incurable. Let us take the example of someone
with diabetes. This sickness is, with the methods we have
today, not curable. At best, it can be a condition of
relative comfort. Someone with diabetes always lives with
a continuous control of the body functions. It is at least
possible in the meantime for them to take care of a good
deal of the therapy themselves.
Did you know that a home computer could represent an
enormous instrument for self help? It was not without
reason that a 17-year-old student won a special prize for
a diabetes software package in Germany.
With this program it is possible to measure blood sugar
values, circulation, and pulse, and not only to measure
them but also compute and evaluate them. Through the input
of information as to how the prescribed behavior was
followed, the software package can evaluate the behavior
for that particular day. A person with diabetes knows for
example if he receives a "0" that he has kept well within
the prescribed rules set forth by his doctor. If on the
other hand he receives a "12," he knows that he must
change his behavior. The program also has an information
file which contains general information on the sickness
and some partial information on his own particular case.
- 182 -
Abacus Software IDEAS TO USE ON YOUR C-64
This diabetes software will be available in a short
time for most popular home computers, such as the C 64. If
you fall within the group of potential users, you should
consult your doctor or local hospital for more informa
tion.
More well known computer applications in the health
sector are programs for risk calculation and life expecta
tion. If you should find such a program listing somewhere,
use it with care. Given the computing and storage capacity
of home computers there is little chance that you can get
really usable forecasts based on your eating, drinking,
and smoking habits. The only useful effect of such prog
rams is that if your life expectancy is deemed low enough
by the program, you may quit smoking.
Many people have mixed feeling about medicine in gen
eral because of the many scandals associated with it. Some
remember natural healing methods and their grandmother's
homemade medicines. I find this to be a positive develop
ment. The inhalation of steam from cooked camomile is much
less risky than swallowing pills. One drawback of home
medicine is that its use is based primarily on experience
and its effect from person to person can be quite dif
ferent .
For people who really wish to use these household
remedies it can be particularly important to carefully
register the effects of cold and warm compresses and the
different teas and herbs on the various illnesses. DATAMAT
can be of great help here.
You will certainly be able to recognize a DATAMAT input
- 183 -
Abacus Software IDEAS TO USE ON YOUR C-64
format when you see one. This one is so simple that no
explanation is really required. Health and sickness re
cords are really no different from our recipes. It is of
course nonsense to turn on the '64 when you feel you're
coming down with the flu. You need to do a little prepa
ration. Enter all the symptoms and the possible therapies
and out of these print a list for yourself. This will be
of more use.
Tip: Sports and good eating habits are a large part of
the prevention of sickness. In chapter 5.8 and 5.9 you
will see how your '64 can help you in these areas.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$ Health Record $
$ $
$ $
$ - 1 - Sickness IBlood effusion ! $
$ $
$ Symptoms $
$ - 2 - Fever no ! Pulse ! = = =! $
$ - 4 - Blood pressure : $
$ - 6 - Pain s $
$ - 7 - Nausea n ! yes/no $
$ - 7 - Diarrhea n ■ 1 yes/no $
$ - 8 - Vomiting n ! yes/no $
$ -10 - Loss of Consciousness !n ! yes/no $
$ -11 - Other '.very painful : $
$ -12 - ! in places '• $
$ $
$ Therapy $
$ -13- +Compress with vinegar + $
$ -14- -fCool. Rest + $
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- 184 -
Abacus Software IDEAS TO USE ON YOUR C-64
5.6 It doesn't make any difference what you collect...
I hope we are in agreement when I say that collecting,
independent of what is collected, does not allow itself to
be explained rationally. It is simply one of the basic
human drives: Finding new objects, bringing them together,
ordering and cataloging them. If you are not a hunter, at
least you can be a collector. What you collect is not
important and the work that goes with it is independent of
the collecting itself.
Many home computer owners came to their computers by
way of their collecting hobbies. There is then no reason
to be surprised that the computer magazines often contain
listings for applications that have to do with collections
of various kinds.
At the very basic level there are two possible ways of
collecting:
- with the goal of having a complete collection of
something
- with the goal of having the most beautiful or most
rare pieces in a particular area.
Stamp and coin collections can, for example, be placed
in the first category, books and records in the second.
The problems of cataloging and management are therefore
somewhat different. I will show two examples of how you
can use DATAMAT to work on your collection.
- 185 -
Abacus Software IDEAS TO USE ON YOUR C-64
Stamp collecting
In order to keep it simple we will choose a fairly
narrow range: How would it be if we chose sports for our
theme? Are you in agreement? Then take your stamp catalog
and underline all of the series which could be of int
erest. These data will then form the basis for our file.
For the input format I would then recommend the following:
[] Stamp Collection []
Series ; >1960 Olympics
Year : >1959<
Post : >republik brumelia
complete : >no< canceled : >no<
No value condition qty price
1) > 0. 50 <: >02< >02< > 7.80<
2) > 1. 00 <C >02< >02< > 7.80<
3) > 1. 50 <: >oo< >00< >
4) > 2. 00 <c >oo< >00< >
5) >10. 00 «C >02< >04< > 7.80<
6)
/ \ y
> \ y \ > < >
7) >
/ \ y
> < >
8) > < > < > < >
9) > < > < > < >
10) >
> < >
- 186 -
Abacus Software IDEAS TO USE ON YOUR C-64
[] Stamp Collection []
Series: >White-water raf
Year : >1951<
Post : >Canada
complete : >y < canceled : >
No value condition qty price
1) >$ 0.50< >+9< >03<
2) >$ 0.75< >+9< >03<
3) >$ 1.00< >+9< >03<
4) >$ 1.50< > + 9< >03<
5) > < > < > <
6) > < > < > <
7) > < > < > <
8) > < > < > <
9) > < > < > <
10) > <
> < > <
The quantity field is useful for printing out lists of
duplicates for trading. All values on hand twice or more
can be selected and printed out with the corresponding
information.
In the same way you can create a wish list that con
tains all of the stamps that you still require. You can
- 187 -
Abacus Software IDEAS TO USE ON YOUR C-64
make a good impression in stamp collecting circles with
such a well sorted-list. Here are two examples:
Decathlon Olympics 1960 no yes
Republik brumelia
0.10 +9 02 8.50
0.50 +9 02 8.50
1.00 +9 02 11.00
2.00 00
Decathlon Olympics 1960 no no
republik brumelia
0.10 +7 01 1. 30
0.50 +7 01 1. 00
1.00 00
2.00 00
And something else. Many philatelists see their collec
tions not only as a hobby but also as a real investment.
If you keep the "price" column in. your file up to date (by
use of a catalog or through offers and purchase requests)
you will be able to sum the list and to see what the
total value of your stamps is.
- 188 -
Abacus Software IDEAS TO USE ON YOUR C-64
Phonograph record collections
If the number of records that you have is getting close
to the 500 mark, you're going to have to make an important
decision: "Should I simply continue to buy and not worry
about cataloging anything, or should I begin to get sys
tematic about the thing?" If you have decided that you
will use the first alternative you can now leave the
chapter. If not, I would like to give you a couple of
tips.
Why the number 500? Simple: From this point on it's too
late to bring some type of system into your collection.
The work of input would be too much and too boring. In
addition to this, 500 records allow themselves to be
placed in more or less reasonable categories. This separa
tion into categories is something you should do in any
event. An example: You have 100 records in a certain
category, each of which has approximately 12 songs, giving
us 100 data records with 12 fields each. Each field con
tains approximately 15 characters. The input format then
contains (12X15=) 180 characters + 20 characters from the
title of the record album and 20 characters for the name
of the singer or group. Another 4 characters are required
for the inventory number and 20 more for additional infor
mation on the year of publication and name of the record
company, etc. Total: 244 characters.
A file which is created with this input format can,
given that the diskette does not contain other files,
contain a maximum of 700 data records. It is then useful
- 189 -
Abacus Software IDEAS TO USE ON YOUR C-64
to distribute the complete collection over several files,
possibly in the following manner:
- pop music
- jazz
- classics
or possibly more detailed
- hard rock
- reggae
- blues
- folk
- swing
- modern jazz
- baroque music
- opera
- musicals
- film music
- western
This process has one big disadvantage. Titles that are
contained in different files cannot be related to one
another. If you want to know all the different versions of
"Slow Boat to China" the only thing that you can do is to
sequentially go through all the files that could contain
the song. This is not really a good solution. The only way
to get around this problem is to allow multiple entries.
That is, if you place Bob Dylan records not only in the
folk music group but also in the pop music. You are limit
ed here only by your imagination.
- 190 -
Abacus Software IDEAS TO USE ON YOUR C-64
The input format as described above:
########################################
# Disco-List Pop #
########################################
# No. : . 001. #
# Album : . Rubber Soul #
# Singer(s) : . Beatles #
# Label : . EMI . No. : . 12/789. #
# #
# Side 1 Side 2 #
# #
# .Michelle . .Norwegian Wood . #
# .Run for your lif. .Drive my car #
# .Nowhere man . .Girl #
# .In my life . . •
#
# #
########################################
As always, changes on your part are not only possible
but recommended.
There are record collectors who use their hobby to make
a little money on the side in that they act as mobile disc
jockeys for parties and other such activities. You have to
consider in such cases that there is a little more to
playing records than just having a steady hand. The atmo
sphere of the party and the wishes of the guests need to
considered. There also shouldn't be any pauses in the
music.
- 191 -
Abacus Software IDEAS TO USE ON YOUR C-64
I'll tell you a little secret: Professionals have stan
dard lists which contain the names of the different titles
and the order in which they are to be played. These lists
have either proven themselves in practical application or
have been tried out in the home studio. Using DATAMAT it
is no trouble for the hobby DJ to make up such a tool and
I am sure that it is not necessary to go into detail here
on how such lists are be put together.
The professionals described above also have other
lists. These are used particularly by mobile discos. These
are selections out of the total repertoire which are
required if you don't always want to carry the whole
10,000 records along with you.
There are many possible applications for computers in
discos. Everything from computer-controlled light organs
to electronically calculated and designed homemade sp
eakers, From the 64 as a control center to a synthesizer.
Anyone who wants to become a professional DJ will be able
to choose what he needs.
- 192 -
Abacus Software IDEAS TO USE ON YOUR C-64
5.7 Hobby photography
Taking pictures is the most fun if you do everything
yourself. It's very difficult to explain to a vacation
pocket-camera photographer what a great feeling it is when
you're standing in the dark room watching your picture
appear in the developer or to explain how much creativity
is required to make an excellent photo out of an average
snap shot. (From this point on it's just something for
insiders).
Have you ever asked yourself the question what is the
correct way to develop ASA 400 Kodachrome film? Aha,
you've already tried. How many different variations have
you been able to find? And did you write everything down
in the form of notes?
In my case I saved all this information on a diskette.
A DATAMAT file with the name "NEGADATA" contains informa
tion on chemicals, temperature, and developing times for
films which are not to be processed in a standard manner.
In the file "POSIDATA" I have saved the information on the
positive process. Both files may be contained on one
diskette and can be updated at any time.
- 193 -
Abacus Software IDEAS TO USE ON YOUR C-64
=== Negative Data === !
! (1) Film type Kodachrome !
i (2) DIN/ASA 400 ASA
: (3) Contrast HI (HI/LO) !
: (4) Developer Perceptol !
J (5) Time 390 sec !
: (6) Temperature 84 degrees !
: (7) Notes Turn often !
Control temp. !
exactly !
The 64 can also be used for control of the film lib
rary, one film equals one file, one picture equals one
record:
Photo Archives
Number -00129-
Date (1) -08/17- Date (2) -08/20-
Filmtype - Tri X 400 ASA-
Pictures:
(01)-(10) - Screen photos for
- Data Becker
(li)-(20) - Product photos of
- computer equipment
(21)—38- - Same as 11-20
= Notes: - Customer Order
- 194 -
Abacus Software IDEAS TO USE ON YOUR C-64
Any picture can be reconstructed at any time. This is
also a type of experience list. The information that is
saved by old-time hobbyist in thick notebooks and organ
izers can be contained on 3 or 4 handy diskettes. That's
real progress.
Further information: The possibility of using a C64 for
direct control of the enlarging and development process
is, as far as I have been able to determine from research,
not very far developed. You should pursue specialized
publications for computers and photography if you want
further information.
- 195 -
Abacus Software IDEAS TO USE ON YOUR C-64
5.8 Jogging
All those nights at the computer are not good for your
health. The backbone is bent and your eyes become red.
Your circulation either gets weak or begins to go into
orbit. Man is in reality a hunter. The body needs activi
ty and exercise, particularly after it spends hours in a
sitting position with little or no movement.
The magic word is jogging. It is good that this form of
exercise has lost its reputation as being nothing more
than fad. Many other useful activities have been killed
by their media image.
So let's get into our sweatsuits, put on our running
shoes and get out in the park. The best times are either
in the morning or in the evening after the heavy fumes of
the rush hour traffic are gone. Jogging is fun and it
keeps you in shape.
"And what does that have to do with my 64?" Well, in
this case the computer is sort of going to play the role
of our conscience. Using the computer we developed a
training plan which can be hung beside our bed or in the
bathroom (over the bathroom scale) and which reminds us
about our fitness plan. At the same time this plan can be
used to write down the data of our daily run.
We will use the many possibilities which DATAMAT offers
to print out the list that we need. I don't need to say
much about this. You can see for yourself:
- 196 -
Abacus Software IDEAS TO USE ON YOUR C-64
JOGGING PLANNER
********************************************************
Monday
7:30 am Loc Central Park Jogging
7:00 pm Loc Highschool Gym
Tuesday
7:30 am Loc Central Park Jogging
: Loc
Wednesday
7:30 am Loc Central Park Jogging
9:00 pm Loc Tennis center
Thursday
7:30 am Loc Central Park Jogging
9:30 pm Loc Tennis center
Friday
: Loc
8:00 pm Loc River trail
Saturday
10:00 am Loc Zoo Park with the children
5:00 pm Loc
Sunday
1:00 pm Loc Bicycling
Loc
- 197 -
Abacus Software IDEAS TO USE ON YOUR C-64
5.9 Electronic diet plan
########################################################
* Requirements *
########################################################
########################################################
* Hardware: *
########################################################
* *
* Commodore 64 *
* Datasette or disk drive *
* Monochrome monitor *
* *
########################################################
########################################################
* Software *
########################################################
* *
* None *
* *
########################################################
########################################################
* Prerequisites *
########################################################
* *
* Knowledge of Commodore BASIC *
* *
########################################################
- 198 -
Abacus Software IDEAS TO USE ON YOUR C-64
There are so many different methods for losing weight.
Potato-, egg-t rice-, fruit-only days and dehydration,
1000 calorie and 0 calorie diets. They are all tested and
tried and are guaranteed not to be bad for your health
(say the proponents of the different methods).
Everyone at least agrees on one thing: Only through a
combination of the right food and enough physical activi
ties can we get rid of our beer bellies. We have already
used our '64 for the physical activities part and now we
come to the diet program.
I have in front of me a small plain brochure with the
title "Calorie Tables." This book contains an (almost)
complete list of the chemical make-up of almost every type
of food. That is to say not only calories or joules as it
is called today but also the component parts of vitamins,
minerals, protein, fat, and carbohydrates.
These tables should be a basis for almost every type of
diet program, but first a little theory.
There are all sorts of strange numbers floating around
about the number of calories per day which you require.
Sometimes 2000, sometimes 1400, and occasionally 3000
calories per day are considered to be the correct amounts.
Nonsense! The daily requirement of calories must be ind
ividually computed and in our program that will be taken
care of automatically. Just one piece of basic informa
tion: A normal white collar worker should not require
more than 2600 calories if his weight is normal. This is
about 20 glasses of beer, 4 bags of potato chips or
- 199 -
Abacus Software IDEAS TO USE ON YOUR C-64
three-quarters of a pound of walnuts. You can also of
course get your energy in the form of 20 cups of fruit
yogurt, if
you'd rather.
The following program is more or less the first stage
in a diet program. It computes the normal weight from the
input or in the case of overweight, it computes the number
of calories which will cause you to lose weight.
I have tried to bring the whole thing in a form which I
hope will be fun because with such a sensitive issue the
computer has got to show that he's a person just like
anyone else.
The second stage would be a program which can further
process the diet data. That is to say, a program which
could select the correct diet plan out of the list of all
your favorite foods and drinks.
I have not included a listing of this program, as I
don't think we should get into the problem of the dif
ferent types of diet forms. We would spend so much time
with that issue we wouldn't take off any weight.
By the way: our program "Pounds off" is a good thing to
have fun with at a party. You know, for those people who
are always asking: "What do you actually do with your
computer?" They like those kinds of things.
Note: The initial input of the weight is in pounds,
which the program then converts to kilograms.
- 200 -
Abacus Software IDEAS TO USE ON YOUR C-64
100 rem ******************************************
110 rem * t
120 rem * Take it off *
130 rem * fUn with a serious *
140 rem * background *
150 rem * out of the data becker *
160 rem * idea book (c) 1984 *
170 rem * ^
180 rem * *
190 rem ******************************************
200 rem
210 poke 53280,7
220 poke 53281,7
230 poke 53272,23
240 print chr$(149)
250 print chr$(147); : print "";
259 rem *********************
260 rem *** program start ***
261 rem *********************
300 print "HELLO" : print
310 print "My name is 'pounds off"
320 print "Call me OFF! for short" : print
330 print "Have you ever used"
340 input "this program (y/n) "; in$
350 if in$="y" or in$="Y" then 11000
360 goto 10000
999 rem *********************************
1000 rem *** keyboard subroutine ***
1001 rem *********************************
1010 poke 214,23 : sys 58640
1020 print "Please strike any >key< "
1030 get t$ : if t$="" then 1030
1040 print chr$(147); : print "" ;
- 201 -
- zoz -
T+« m+$bu=$bu
»n°A,,= (8)$«« : »Jn°A» = (2)$«B :
$ut !44 auieu
„ anoX paau i uaq^. *psq ooxH lujjd : ^upd
$nt!M (u/^) sauiBU ^sjtj Aq oS 9M
***********************************
*** euT^nojqns - quibu ^sjij *** raaj 0017T
*********************************** nisa 6681
098T
$ut!,, (J/m) aieniaj: jo aiew,, ^ndux : ;aiad 088T
0Z8T
$ui JM aaiBU ^sji.3 l4 ^ndui 0T8I
********************************* n19-1 T08T
*** eux^nojqns - qoibu sfSB *** maa 0081
********************************* ffl3J 66ZT
00ZI
06TT
08IT
09IT
0911
$ut!,, (u/-^) Jan^H,, ^ndut ofrTT
(I9T)$J^° quiJd 0811
9T'18289 93lod OZTT
21*08289 9>fod OITI
***************************** niaj xoTT
*** jojoo aiBJ^ojdqns *** mej 0011
***************************** W9J 6601
090T
-0 HQOA NO 3Sn OX SVaai
Abacus Software IDEAS TO USE ON YOUR C-64
1480 return
1499 rem **************************
1500 rem *** age subroutine ***
1501 rem **************************
1510 print an$(2) ; : input " Age in years ";in$
1520 in=val(in$) : if in >10 and in<100 then 1550
1530 if in<=10 then print "Come back again in 2 years !"
1540 if in>=100 then print "Anyone that old can be fat!"
1545 gosub 1000 : goto 1510
1550 al*=in : return
1599 rem *****************************
1600 rem *** weight subroutine ***
1601 rem *****************************
1610 print an$(2) ; : input " weight in pounds";in$
1620 in=val(in$)*2.2 : if in>20 and in<200 then 1650
1630 if in<=20 then print "Please don't cheat !"
1640 if in>=200 then print "I don't believe you!"
1645 gosub 1000 : goto 1710
1650 gw*=in : return
1699 rem *****************************
1700 rem *** height subroutine ***
1701 rem *****************************
1710 print "And what is ";an$(2); : input "height ";in$
1720 in=val(in$) : if in>20 and in<240 then 1770
1730 if in<=20 then print "even dwarfs started small."
1740 if in<=20 then print "but that small? no cheating !"
1750 if in>=240 then print "I'm not prepared for "
1760 if in>=240 then print "giants ."
1765 gosub 1000 : goto 1810
1770 gr*=in : return
1799 rem *********************************************
1800 rem *** overweight calculation subroutine ***
1801 rem *********************************************
- 203 -
- frOZ -
9141TI V = 8
0212
puB aw = I H }uijd : oiI2
***************************** I0T2
*** aupnojqns s^jods *** maj 0012
***************************** 6602
9602
g.ut :
spuij qoeoo 9 = UT JT 0602
9=UT l\ 0802
0902 °}°3 : MM q<ut jo o>uT JT 0L02
($ut)iba=ut : $ut i 0902
= S ii 0902
jo
mj9>Ijom = Z ii 0802
M sjiMdsnoq jo js^jom jbhoo anxa = z u 0202
x^OTsAqd on = X „ ^utjj : 0102
*************************** 1002
*** ssqj^s xs°TSA>Md *** 0002
*************************** mBJL 6661
068T
JT 088T
JT Q£8I
ut si JT 0981
joj: psq QT> **n PUB JT 0981
jjo n PUB JT 0fr8T
JT 088T
0A8T JT 028T
=^u 0T8I
0I=*oq i : 0=SOC1 JT 9081
*9-0 HQOA NO 01 SVaai
- 902 -
OOOT qnsoS 0ITS
************************************* inaj X0T8
*** aux^nojqns saxqe} AB^deip *** uiaj OOIS
************************************* maj 6608
0808
= (9)$P<* :,^M3iaMl4 + $3n=(g)$pd : (%3n)$j}s= (f)$pd OZOS
: (^M3)$a^s=(2)$pd : (%TB)$ai.s=(T )$pd 0T08
***************************** maj 1008
*** aax^nojqns saxqe^ *** raaj QOOS
***************************** uiej 6662
008!>%TP P«b 009T>%TP JT
009T>%TP P«b 002KSTP JT 0822
,,-aq ;snm aq ^snm ^BqM<l = $niJi uaq^ OOZI>*!P JT OLZZ
jt 09Z2
JT 0922
0^22
pue qi<%ib jt Q822
«sq^ 9I>STb JT 0222
091* (2-^ds)=^ds : 00fr* (T-5^q>l) =%q>| 0122
*************************************** uiaj T022
*** aui^nojqns saiao^BO e^ndoioo *** maj 0022
*************************************** mea 66TZ
ujn^aj : uT=*ds Q8T2
09TZ
MM ^uijd uaq^ g<ui jo x>«T JT : ($ut)Ib
$aT * nllllLLlLllillLL PUV,* >ndut : ^uiJd 0912
= 9 « luzjid 09T2
-0 HflOA NO asn 01 SVaai
Abacus Software IDEAS TO USE ON YOUR C-64
3120 print : print "Pounds-off table for ";na$ : print
3130 print ">>>"+km$+"<<<" : print
3140 for n=l to 10
3150 : read n$
3160 : print n$;pd$(n)
3170 next
3180 restore : return
3190 data "age = ","weight = ","height ="
3191 data "=","","increase 1 =","increase 2 ="
3192 data "Requirement =","Diet =","Nml. Wgt ="
3199 rent **********************************
3200 rem *** save tables subroutine ***
3201 rem **********************************
3210 ff$="
3220 if len(na$)>15 then dn$=left$(na$,15)
3230 if len(na$)<15 then dn$=na$+left$(ff$,15-len(na$))
3240 print ">"+ff$"<"
3250 print ""+dn$ : print "the table will be saved "
3260 print "under this name. Please be patient!"
3270 open 1,8,2,u$+dn$+"s,w"
3280 for n=l to 10 : print#l,pd$(n) : next
3290 close 1 : return
3299 rem **********************************
3300 rem *** read tables subroutine ***
3301 rem **********************************
3310 ff$="
3320 print "What was your name ?"
3330 input na$
3340 print : print "I first have to read the "
3350 print "table into memory"
3360 if len(na$)>15 then dn$=left$(na$,15)
3370 if len(na$)<15 then dn$=na$+left$(ff$,15-len(na$))
3380 open 1,8,2,dn$+"s,r"
- 206 -
Abacus Software IDEAS TO USE ON YOUR C-64
3390 for n=l to 10
3400 : input#l,pd$(n)
3410 next n
3420 al*=val(pd$(l)) : gw*=val(pd$(2)) : gr*=val(pd$(3))
3430 kb*=val(pd$(6)) : sp*=val(pd$(7)) : en*=0 : di* = 0
3440 close 1 : gosub 3500
3450 if ff=0 then return
3460 if ff=62 then 3320
oy\ oO v*^«*i ^^^^^^^^^^^^^^^^^^^^^^^^^
3500 rem *** error channel ***
^^ ^^ \/ ^ JL ^5 Ul ^^ ^^ ^^ ^n ^P ^^ ^P ^^ ^r ^P ^P ^P ^P ^P ^P ^P ^P ^^ ^P ^P ^P *^ *^ *|* *(*
3510 open 15,8,15
3520 input#15,ff,fb$,sp,se
3530 close 15
3540 if ff<>0 then print ff;fb$;sp;se : gosub 1000 : return
3560 if ff=0 then return
9999 rem *****************************
10000 rem **** main program (1) ***
10001 rem *****************************
10010 rem
10020 u$=""
10030 print : print " You want to lose weight!"
10040 print "Good I'll help you. I need"
10050 print "some information."
10060 print "(just like a computer, isn't it...)"
10070 gosub 1000 : gosub 1300 : gosub 1000 : gosub 1400
: gosub 1000
10080 print "by the way" ;an$(3);" is the picture":
input "too colorful (y/n) ";in$
10090 if in$="y" then gosub 1100
10100 gosub 1000 : print "now I need ": gosub 1500
10110 gosub 1000 : print "the normal info... " : gosub 1600
10120 gosub 1000 : gosub 1700 : gosub 1800 : gosub 1000
- 207 -
Abacus Software IDEAS TO USE ON YOUR C-64
10130 if an$(l)="you" then ha$="have"
10150 print "ok ";an$(l);" ";ha$;" ";ug*;" kg";ug$+"weight"
10160 print : print an$(2);" normal weight is";ng*;"Kilo!"
10170 print "or";ig£; "ideal weight."
10180 print : print "Dear "+an$(4)+" "+na$;",this is:"
10190 print mu$
10200 if mu$="This is not a feeding program." then 10490
10210 gosub 1000 : print "Everyone has a different
lifestyle and";
10220 print "a different physical stress level."
10230 print "how is it with you"; an$(3); "?": gosub 2000
10240 gosub 1000: print "interesting. I know sports are
tough,"
10250 print "but good for you"
10260 print "I need ";an$(2);" answer."
10270 gosub 2100 : gosub 2200
10280 gosub 1000 : print "one more time:"
10290 print : print ug$+"weight=";ug%;"kilo"
10300 print "normal weight=";ngS;"kg ("ngS*.454"pounds)"
10310 print " ideal weight=";igS;"kg ("igfc*.454"pounds)"
10320 print : print "If your normal daily"
10330 print "energy requirement is";en^;"thousand calories"
10340 print "I would recommend consumption"
10350 print "of no more than;
10360 print di*;" cal/day."
10370 print "My comments:"
10380 print : print ">>>"+km$+"<<<"
10390 gosub 1000: gosub 3000
10400 input "should I show the table again";in$
10410 if in$="n" then 10430
10420 gosub 3100
10430 print : input "shall I print the table";in$
10440 if in$^"n" then 10460
- 208 -
Abacus Software IDEAS TO USE ON YOUR C-64
10450 open4,4,2: cmd 4: gosub 3120 : print#4 : close 4
10460 input "and/or store on diskette";in$
10470 if in$="n" then 10490
10480 gosub 3200
10490 gosub 1000 : print "well that's it."
10500 print "please honor me again with your presence!!"
10510 rem
10520 gosub 1000 : print "***END***" : end
10999 rem ****************************
11000 rem *** main program (2) ***
11001 rem ****************************
11010 gosub 1000 : gosub 3300 : gosub 3100
11020 if left$(dn$,2)O"Mr" and lef t$(dn$, 3) <>"Mrs" then
gosub 11900
11030 if left$(dn$,2)="Mr" or left$(dn$,3)="Mrs" then
gosub 12000
11040 print an$(2);" data."
11050 gosub 1000 : input "Has anything changed (y/n) ";in$
11060 if in$="n" then 10430
11070 print : print " 1 = age"
11080 print " 2 = weight"
11090 print " 3 = height "
11100 print " 4 = physical stress"
11110 print " 5 = sports"
11190 print : input "What";in$ : in=val(in$)
11200 if in>0 and in<6 then 11220
11210 print "you made a mistake.":gosub 1000 : goto 11070
11220 on in goto 11230,11270,11340,11380,11430
11230 al*=0 : gosub 1000: print "happy birthday!";
11240 gosub 1500 : gosub 1000 : input "Has anything else
changed (y/n) ";in$
11250 if in$="n" then 11480
11260 print chr$(147);:print "";:goto 11070 : gosub 1000
- 209 -
Abacus Software IDEAS TO USE ON YOUR C-64
11270 gw% = 0 : input "gained weight (y/n) ";in$
11280 if in$="y" then print : print "you didn't watch your
diet?"
11290 if in$="n" then print : print "you see it works!!!"
11300 print "I'd like to know your new weight.":gosub 1600
11310 gosub 1000 : input "anything else?";in$
11320 if in$="n" then 11480
11330 print chr$(147) ; : print ""; : goto 11070
11340 gr&=0:"stood out in the May rain":gosub 1700 : gosub
1000
11350 input "has anything else changed ";in$
11360 if in$="n" then 11480
11370 print chr$(147); : print "";: goto 11070
11380 kb*=0 : print "I'd like a new job"
11390 print "too. What is it?" : gosub 2000
11400 gosub 1000 : input "but except for that everything
is the same";in$
11410 if in$="y" then 11480
11420 print chr$(147); : print ""; : goto 11070
11430 spfc=0 : print "well we'll see if it's"
11440 print "gotten better." : gosub 2100
11450 gosub 1000 : input "anything else (y/n) ";in$
11460 if in$="n" then 11480
11470 print chr$(147); : print ""; : goto 11070
11480 gosub 1000 : print "we'll see what comes out this
time."
11490 gosub 1800 : gosub 2200 : u$="@:" : goto 10420 :end
11900 an$(l)="you" : an$(2)="your" : an$(3)="you"
11910 return
12000 an$(l)="you" : an$(2)="your" : an$(3)="you "
12010 return
- 210 -
Abacus Software IDEAS TO USE ON YOUR C-64
5.10 An intelligent dictionary
* Requirements : *
####################################################
* Hardware : *
####################################################
* *
* Commodore 64 *
* 1541 disk drive *
* Monochrome monitor *
* *
####################################################
####################################################
* Software : *
####################################################
* *
* None *
* *
####################################################
####################################################
* Prerequisites : *
####################################################
* *
* Good knowledge of BASIC *
* Experience with use of relative files *
* *
####################################################
- 211 -
Abacus Software IDEAS TO USE ON YOUR C-64
I am going to assume 2 things here: First, kids (com
puter fans under the age of 18) know more about pro
gramming than do older people and secondly, games are out
and education is in.
It could be that I'm wrong, but I want to talk about
computer-aided instruction nonetheless. In the case of the
following program we will be dealing with a self-learning
dictionary. Just what do I mean by that?
One example from the area of German-English diction
aries: We enter the German word "Klobuerste" and want to
know what it means in English. The program answers: "I
don't know. What does that mean?" After entering "toilet
brush," the program automatically places the new word in
its inventory.
The program can also do the following:
- ask for vocabulary
- store vocabulary
This example is perhaps a little esoteric. Not every
student is going to need a foreign language dictionary. As
an excuse I can only say that this example has the benefit
that only relatively small amounts of words need be hand
led. In reality this application is not all that unusual
if we think about similar problems, such as technical
dictionaries. The listing can also be changed without too
much difficulty to meet the requirements of any similar
type of problem.
- 212 -
Abacus Software IDEAS TO USE ON YOUR C-64
The largest and unfortunately unavoidable problem is
the amount of data which can be handled: If we consider a
record of 20 characters for the English as well the German
word, we cannot get more than 300 different words in one
file (that is to say, on one diskette). This is relatively
little. According to the experts, a basic vocabulary in
English contains between 5,000 and 12,000 words. If the
program is to be used less for translations than as a
learning aid, this will not be a problem. We can simply
use more than one file: one for verbs, one for nouns and
one for idioms, etc.
If you have not yet used a program which makes us of
relative files, you should get yourself a good book, such
as The Anatomy of the 1541 Disk Drive from Abacus
Software, before you try to change the following listings.
- 213 -
Abacus Software IDEAS TO USE ON YOUR C-64
And now the listing.
1 rem ********************
2 rem foreign language dictionary
3 rem * *
4 rem from the data becker "idea book 64"
5 rem * *
6 rem version 3 6/1/84
7 rem ********************
8 rem
9 rem
10 poke 53272,23 : rem upper/lower case
20 poke 53280,12 : rem border color medium grey
30 poke 53281,12 : rem background color light grey
40 print chr$(151) : rem text color dark grey
50 rem
60 ff$="
70 fr$=ff$+"
80 cr$=chr$(13) : rem >>return<<
90 dim ix$(1500) : rem index table
99 goto 50000
10000 rem * * * titles * * *
10001 rem
10010 print chr$(147);
10020 print "*** ***M;
10030 print "*** ***";
10040 print "*** Foreign Dictionary ***";
10050 print "*** ***";
10060 print "*** ***";
10070 print : print
10080 return
11000 rem * * * input/command line * * *
- 214 -
Abacus Software IDEAS TO USE ON YOUR C-64
11001 rem
11010 cz=23 : cs = 0
11020 poke 214,cz : poke 211,cs : sys 58640
11030 return
12000 rem * * * read keys * * *
12001 rem
12010 gosub 11000
12020 print " >press key< ";
12030 get g$ : if g$ = "" then 12030
12040 print "" : print ff$;
12050 return
20000 rem * * * read error channel * * *
20001 rem
20010 open 15,8,15
20020 input#15,ff,fb$,sp,se
20030 close 15
20040 fm$=str$(ff)+" "+fb$+" "+str$(sp)+" "+str$(se)
20050 return
21000 rem * * * format disk * * *
21001 rem
21010 gosub 11000 : print ff$; : gosub 11000
21020 print " Disk is being formatted ";
21030 open 15,8,15
21040 print#15,tfn: lexicon,11"
21050 close 15
21060 gosub 20000
21070 if ff=0 then 22000
21080 gosub 11000
21090 print "error message: ";fm$;
21100 gosub 12000
21110 gosub 11000
21120 print "Take a new diskette, repeat procedure";
21130 gosub 12000
- 215 -
Abacus Software IDEAS TO USE ON YOUR C-64
21140 goto 21000
22000 rem * * * create relative file * * *
22001 rem
22010 gosub 10000
22020 poke 214,9 : poke 211,0 : sys 58640
22030 input " number of foreign words? 1500";in$
22040 in=val(in$) : if in>1500 then 22020
22050 print: print "the file is called >lexicon< "
22060 print " A record has max. >85< characters".
22070 gosub 11000
22080 print "File will be created ";
22090 rn%=in : hb=int(rn*/256) : lb=rn%-hb*256
22100 open 1,8,2, "lexicon,1,"+chr$(86)
22110 open 2,8,15,"p"+chr$(2)+chr$(lb)+chr$(hb)+chr$(1)
22120 print#l,chr$(255)
22130 close 2 : close 1
22140 gosub 20000
22150 if ff=0 or ff=50 then return
22160 gosub 11000
22170 print "error message:";fm$;
22180 gosub 12000
22190 gosub 11000
22200 print "deleting files, repeat procedure";
22210 gosub 12000
22220 open 14,8,15
22230 print#14,"s:lexicon"
22240 print#14,"v"
22250 close 14
22260 gosub 20000
22270 if ffOl then 21000
22280 return
23000 rem * * * load index file * * *
23001 rem
- 216 -
Abacus Software IDEAS TO USE ON YOUR C-64
23010 gosub 10000
23020 gosub 11000
23030 print "index file being loaded ";
23040 open 3,8,2, "index,s,r"
23050 x=l
23060 input#3,ix$(x)
23070 if st<>64 then x=x+l : goto 23060
23080 close 3
23090 gosub 20000
23100 if ff<>0 then 23120
23110 return
23120 gosub 11000
23130 print "error message:";fm$
23140 gosub 12000
23150 gosub 11000
23160 print "Looking up meaning. Starting from beginning."
23170 gosub 12000
23180 print chr$(147)
23190 end
24000 rem * * * store index file * * *
24001 rem
24010 gosub 10000
24020 gosub 11000
24030 print " Index file is being stored "
24040 open 3,8,2,"@:index,s,w"
24050 for x=l to rn%
24060 : print#3,ix$(x)
24070 next x
24080 close 3
24090 gosub 20000
24100 if ff<>0 then 24120
24110 return
24120 gosub 11000
- 217 -
Abacus Software IDEAS TO USE ON YOUR C-64
24130 print "error message:";fm$
24140 gosub 12000
24150 gosub 11000
24160 print "Looking up meaning. Starting from beginning."
24170 gosub 12000
24180 print chr$(147)
24190 end
25000 rem * * * output file parameter * * *
25001 gosub 23000
25020 gosub 11000
25030 print ff$
25040 gosub 10000
25060 print " *** File parameters *** "
25070 print : print
25080 print "The file >lexicon< contains ";x;"
records."
25090 gosub 12000
25100 return
30000 rem * * * disk/file menu * * *
30001 rem
30010 gosub 10000
30020 print " *** Preparations ***"
30030 print
30040 input " (1) disk inserted Y";in$
30050 if in$O"n" and in$O"N" then 30080
30060 print " > insert disk <"
30070 gosub 12000 :• poke 214,10 : poke 211,0 : sys 58640
30080 input " (2) diskette formatted Y";in$
30090 if in$O"n" and in$O"N" then 30125
30100 gosub 21000
30110 return
30120 gosub 12000
30125 poke 214,13 : poke 211,0 : sys 58640
- 218 -
Abacus Software IDEAS TO USE ON YOUR C-64
30130 input " (3) File lexicon exists Y";in$
30140 if in$O"n" and in$O"N" then 30160
30150 gosub 22000
30160 gosub 23000
30170 return
40000 rem * * * Dictionary mode * * *
40001 rem
40005 gosub 25000
40010 open 1,8,2,"lexicon,1,"+chr$(86)
40015 open 2,8,15
40020 gosub 10000
40030 print " *** Dictionary mode *** "
40040 gosub 11000
40050 print " input foreign words "
40060 poke 214,10 : poke 211,0 : sys 58640
40070 input fw$
40080 fw=len(fw$) : if fw>20 then 40060
40090 if fw=20 then 40110
40100 fw$=fw$+left$(fr$,20-fw)
40110 for i=l to x
40120 : if fw$=left$(ix$(i),20) then 40160
40130 next i
40140 fl=l : rn%=x+l : goto 45110
40150 fl=0 : goto 40280
40160 ix=len(ix$(i))
40170 i$=right$(ix$(i),ix-20)
40180 rn*=val(i$)
40190 hb=int(rn*/256) : lb=rn*-hb*256
40200 print#2,"p"+chr$(2)+chr$(lb)+chr$(hb)+chr$(22)
40210 input#l,ue$
40220 for j=l to 63
40230 : j$=mid$(ue$,1,j)
40240 : if j$=" " then ue$=left$(ue$,j) : goto 40260
- 219 -
Abacus Software IDEAS TO USE ON YOUR C-64
40250 next j
40260 poke 214,12 : poke 211,0 : sys 58640
40270 print ue$
40280 gosub 11000 : print ff$; : gosub 11000
40290 input "More questions Y";in$
40300 if in$="n" or in$="N" then 40320
40310 goto 40050
40320 close 2 : close 1
40330 return
45000 rem * * * expand dictionary * * *
45001 rem
45005 gosub 25000
45010 rn*=x+l : fl=0
45015 open 1,8,2, "lexicon,1,"+chr$(86)
45020 open 2,8,15
45025 gosub 10000
45030 print " *** EXPAND DICTIONARY *** No. : ";rn*
45040 gosub 11000
45050 print " enter foreign word "
45060 poke 214,10 : poke 211,0: sys 58640
45070 input fw$
45080 fw=len(fw$) : if fw>20 then 45060
45090 if fw=20 then 45110
45100 fw$^fw$+left$(fr$,20~fw)
45110 gosub 11000
45120 print " enter translation "
45130 poke 214,12 : poke 211,0 . sys 58640
45140 input ue$
45150 ue=len(ue$) : if ue>64 then 45130
45160 if ue=64 then 45180
45170 ue$^ue$+left$(fr$,64~ue)
45180
45190
- 220 -
Abacus Software IDEAS TO USE ON YOUR C-64
45200 hb==int(rn*/256) : lb=rn%-hb*256
45210 print#2,"p"+chr$(2)+chr$(lb)+chr$(hb)+chr$(l)
45220 print#l,le$
45230 if fl=l then 40150
45240 gosub 11000 : print ff$ : gosub 11000
45 250 input " Other inputs YM;in$
45260 if in$ = "Nfr or in$ = "n" then 45300
45270 poke 214,7 : poke 211,35 : sys 58640
45280 rn*=rn*+l : print rn*
45290 goto 45040
45300 close 2 : close 1
45310 return
49000 rem * * * end program * * *
49001 rem
49010 gosub 10000
49020 gosub 24000
49030 gosub 11000
49040 input "End program N";in$
49050 if in$="y" or in$="Y" then 49070
49060 goto 50000
49070 print chr$(147)
49080 poke 214,10 : poke 211,12 : sys 58640
49090 print " *** End ***"
49100 end
50000 rem * * * main program * * *
50001 rem
50010 gosub 10000
50020 print " *** menu ***"
50030 print
50040 print " (1) Disk/file preparation"
50050 print " (2) Dictionary mode"
50060 print " (3) Expand dictionary"
50070 print " "
- 221 -
Abacus Software IDEAS TO USE ON YOUR C-64
50080 print " (0) End program
50090 gosub 11000
50100 input " >Please choose< ltf;in$
50110 in=val(in$): if in>3 then 50090
50120 if in=0 then 49000
50130 on in gosub 30000, 40000, 45000
50140 goto 50000
50150 rem
50160 rem ******************
50170 rem * end of program *
50180 rem ******************
ready.
- 222 -
Abacus Software IDEAS TO USE ON YOUR C-64
5.11 Literature data bank
Very important. This type of data bank can be very
useful for anyone who is studying, from a high school
senior to a candidate for a masters degree.
Persons who must learn intensively and wish to receive
good grades need some kind of card file for formulas,
vocabularies, and other references. A literature data base
is the final answer to the question "I read that some
where. Where was it?"
Data base? We have to redefine that term just a bit
since I have already admitted that a real data base cannot
be managed with DATAMAT. It is, however, possible to simu
late a data base because of the ability to access dif
ferent files with various formats. I don't think it would
be very useful at this point to present a universal guide
for the solution of this problem. The various requirements
would be much too different. We will therefore simply
present some general information so that you can carry on
yourself.
- 223 -
Abacus Software IDEAS TO USE ON YOUR C-64
Literature File
for the C64
Title : !Idea Book 64
in : ! ! No. !
Author : !R. Bartel
Publish: !Abacus Software
Year : !84!
Page(s)
Short desc. !diverse applications
Contents !Ideas for word proc.
music, data proc,
graphics, calculat.
8 programs
References !other DB books
The main problem is the choice of the key or search
criteria. They must be short because of the search times
but also tell us enough so that we don't delete it because
we think it contains something which we don't need any
more (key: "OLD.19.55." is a little too cryptic.)
It is also not all that easy to put the required infor
mation into the room available. The best thing to do is to
begin by experiment, either with a small or fictitious
file.
- 224 -
Abacus Software IDEAS TO USE ON YOUR C-64
If you don't want to do without your old-fashioned card
file, you can print the records on appropriately sized
labels which can then be placed on the cards.
Just one extra tip: The file should always
a) be brought up to date on a routine basis
b) copied to a second backup diskette
Let me then wish you a lot fun in your studies and an A in
every course.
- 225 -
OPTIONAL DISKETTE
For your convenience, the programs that are listed in this
book are available on a 1541 formatted diskette. If you want
to use the programs, without typing them in at your
Commodore 64 from the listings in the book, then you may
want to order this diskette.
All programs on the diskette have been fully tested. The
diskette is available for $14.95 + $2.00 ($5.00 foreign) for
postage and handling charges.
When ordering, please specify the title of the diskette,
your name and shipping address and enclose a check, money
order or credit card information. Mail your order to:
ABACUS Software
P.O. Box 7211
Qrand Rapids, MI 49510
For faster service, you may order by phone:
616 / 241-5510
wwIVI IVIwlJwK C™64
HACKERS ONIY!
The ultimate source
for Commoddre-64
Computer information
OTHER BOOKS AVAILABLE SOON
THE ANATOMY OF THE C-64 GRAPHICS BOOK FOR SCIENCE/ENGINEERING
is the insiders guide to the lesser known features of THE C-64
ON THE C-64
the Commodore 64 Includes chapters on graphics, lakes you from the fundamentals of graphic to
sound synthesis, input/output control, sample programs is an introduction to the world o( computers in science.
advanced topics such as computer aided design. Shows Describes variable types, computational accuracy,
using the Vernal routines, more For those who need to you how to program new character sets, move sprites various sort alognthms. Topics include linear and
know, it includes the complete disassembled and draw in HIRES and MULTICOLOR, use a lightpen.
documented ROM listings nonlinear regression. CHI-square distribution. Fourier
handle IROs. do 3D graphics, projections, curves and analysis, matrix calculations, more Programs from
ISBN-0-916439-00-3 300pp $19.95 animation Includes dozens of samples chemistry, physics, biology, astronomy and electronics.
ISBN-0-916439-05-4 280pp $19.95 Includes many program listings
THE ANATOMY OF THE 1541
DISK DRIVE ISBN-0-916439-09-7 250pp $19.95
unravels the mysteries of using the misunderstood disk ADVANCED MACHINE
drive Details the use of program, sequential, relative LANGUAGE FOR THE C-64 CASSETTE BOOK FOR THE C-64
and direct access files Include many sample programs gives you an intensive treatment of the poweriul '64 (or Vic 20) contains all the information you need to
FILE PROTECT. DIRECTORY. DISK MONITOR. BACKUP. features Author Lothar Enghsch delves into areas such know about using and programming the Commodore
MERGE. COPY, others Describes internals of DOS with as interrupts, the video controller, the timer, the real Datasetie Includes many example programs Also con
completely disaddembled and commented listings of the time clock parallel and serial I/O extending BASIC and tains a new operating system for fast loading, saving
1541 ROMS tips and tricks from machine language, more and finding of files
ISBN-0-916439-01-1 320pp $19.95 ISBN-0-916439-06-2 200pp $14.95 ISBN-0-916439-04-6 180pp. $12.95
MACHINE LANGUAGE FOR C-64
is aimed at those who want to progress beyond BASIC
IDEAS FOR USE ON YOUR C-64
is lor those who wonder what you can do with your 64
DEALER INQUIRIES ARE INVITED~
Write (aster, more memory efiicient programs in machine ii is written for the novice and presents dozens of IN CANADA CONTACT:
language Test is specifically geared to Commodore 64 program listing the many, many uses for your The Book Centre. 1140 Beaulac Street
Learns all 6510 instructions Includes listings for 3 full computer Themes include auto expenses, electronic Montreal, Quebec H4R1R8 Phone: (514) 322-4154
length programs ASSEMBLER. DISASSEMBLER and calculator, recipe file, stock lists, construction cost
amazing 6510 SIMULATOR so you can see the opera .estimator personal health record diet planner, store
tion of the '64 AVAILABLE AT COMPUTER STORES, OR WRITE:
window advertising, computer poetry, party invitations
ISBN-0-916439-02-X 200pp $14.95 <ind more
ISBN-0-916439-07-0 200pp $12.95 Abacus tH Software
TRICKS & TIPS FOR THE C-64 P.O. BOX 7211 GRAND RAPIDS, Ml 49510
PRINTER BOOK FOR THE C-64 Exclusive U.S. OATA BECKER Pubtishar*
is a collection of easy-to-use programming techniques for
the 64 A perfect companion for those who have run Imally simplifies your understanding of the 1525. For postage & handling, add $4.00 (U.S. and ■
up against those hard to solve programming problems MPS/801. 1520. 1526 and Epson compatible printers Canada), add$6.00 for foreign. Make payment •
in U.S. dollars by check, money order of
Covers advanced graphics, easy data input. BASIC Packed with examples and utility programs, you'll learn
charge card. (Michigan Residents add 4% i
enhancements. CP/M cartridge on [he 64. POKEs. user now to make hardcopy of text and graphics, use secon
sales tax.)
defined character sets, loystick/mouse simulation, tians- dary addresses, plot in 3-D. and much more Includes
fernng data between comuters. more A treasure chest commented listing of MPS 801 ROMs FOR QUICK SERVICE PHONE (616) 241-5510
ISBN-0-916439-03-8 250pp $19.95 ISBN-0-916439-08-9 350pp. $19.95 Commodore 04 is a rag. T.M. of Commodore Business Machines
PASCAL-64 ASSEMBLER / OTHER NEW SOFTWARE COMING SOONI
This full compiler produces fast 6502 MONITOR-64
machine code. Supports major data Types:
This complete language development All software products featured above
REAL, INTEGER, BOOLEAN, CHAR,
package features a macro assembler and have inside disk storage pockets,
multiple dimension arrays, RECORD. FILE.
extended monitor. The macro assembler
SET and pointer. Offers easy string handl and heavy 3-ring-binder for maxi
offers freeform input, complete assembler
ing, procedures for sequential and relative mum durability and easy reference.
listings with symbol table (label), condi-
data management and ability to write IN
tional assembly.
TERRUPT routines in Pascal! Extensions
The extended monitor has all the standard
included for high resolution and sprite
commands plus single step, quick trace
graphics. Link to ASSEM/MON machine
breakpoint, bank switching and more.
lan9ua9e- DISK $39.95 DISK $39.95
DATAMAT-64 BASIC-64
This powerful data base manager handles This is a full compiler that won't break your
up to 200J> records per disk. You select the budget. Is compatible with Commodore 64
screen format using up to 50 fields per BASIC. Compiles to fast machine code.
record. DATAMAT 64 can sort on multiple Protect your valuable source code by com
fields in any combination. Complete report piling with BASIC 64. DEALER INQUIRIES INVITED
writing capabilities to all COMMODORE or Available December
ASCII printers. DISK $39.95
AVAILABLE AT COMPUTER STORES, OR WRITE:
DISK $39.93
Available November
ADA TRAINING COURSE Abacus HI Software
TEXTOMAT-64 This package is an introduction to ADA. the
P.O. BOX 7211 GRAND RAPIDS, Ml 49S10
Exclusive U.S. DATA BECKER PuMstwra
This complete word processor displays 80 official language ot the Department of
For pottage & handling, add $4.00 (U.S. and i
columns using horizontal scrolling. In Defense and the programming language of Canada), add S6.00 for foreign. Mate payment ■
memory editing up to 24.000 characterrs the future. Includes editor, syntax in U.S. dollars by check, money order of .
plus chaining of longer documents. checker/compiler and 110 page step by charge card. (Michigan Residents add 4% I
Complete text formatting, block operations, sales tax.)
step manual describint the language.
form letters, on-screen prompting. Available November
FOR QUICK SERVICE PHONE (616) 241-5510
Available November DISK $39.95 DISK $79.95
Commodore 64 is a rag. T.M. ot Commodore Businma Uachinn
XREF-64 BASIC CROSS REFERENCE CADPAK-64
This tool allows you to locate those hard-to-find variables in your programs. This advanced design package has outstanding features - two Hires
Cross-references all tokens (key words), variables and constants in sorted screens; draw LINEs. RAYs. CIRCLES. BOXEs; freehand DRAW; FILL with
order. You can even add you own tokens from other software such as patterns; COPY areas; SAVE/RECALL pictures; define and use intricate
ULTRABASIC or VICTREE. Listings to screen or all ASCII printers. OBJECTS; insert text on screen; UNDO last function. Requires high quality
DISK $17.95 lightpen. We recommend McPen. Includes manual with tutorial.
SYNTHY-64 DISK $49.95 McPcn lightpen $49.95
This is renowned as the linest music synthesizers available at any price.
Others may have a lot of onscreen frills, but SYNTHY-64 makes music better
than them all. Nothing comes close to the performance of this package
MASTER 64
Includes manual with tutorial, sample music. This professional application development package adds 100 powerful
DISK $27.95 TAPE $24.95 commands to BASIC including fast ISAM indexed files; simplified yet
sophisticated screen and printer management; programmer's aid; BASIC
ULTRABASIC-64 4.0 commands; 22-digit arithmetic; machine language monitor. Runtime
This package adds 50 powerful commands (many found in VIDEO BASIC, package for royalty-free distribution of your programs. Includes 150pp
manual.
above) ■ HIRES. MULTI. DOT. DRAW. CIRCLE. BOX. FILL, JOY. TURTLE.
MOVE TURN. HARD. SOUND. SPRITE. ROTATE, more. All commands DISK $84.95
are easy to use. Includes manual with two-part tutorial and demo. VIDEO BASIC-64
DISK $27.95 TAPE $24.95 This superb graphics and sound development package lets you write soft
ware for distribution without royalties. Has hires, multicolor, sprite and
CHARTPAK 64
turtle graphics; audio commands for simple or complex music and sound
This finest charting package draws pie. bar and line charts and graphs from
effects, two sizes of hardcopy to most dot matrix printers; game features
your dala or DIF. Multiplan and Busicalc files Charts are drawn in any of
such as sprite collision detection, lightpen, game paddle; memory
2 formats Change format and build another chart immediately. Hardcopy management for multiple graphics screens, screen copy. etc.
to MPS801. Epson. Okidata. Prownter Includes manual and tutorial
DISK $59.95
DISK $42.95
CHARTPLOT-64 TAS-64 FOR SERIOUS INVESTORS
Same as CHAflTPACK-64 for highest quality output to most popular pen This sophisticated charting system plots more than 15 technical indicators
on split screen; moving averages; oscillators; trading brands; least squares;
ltt
plOtters DISK $84.95 trend lines, superimpose graphs; five volume indicators; relative strength;
volumes; more. Online data collection DJNR/S or Warner. 175pp. manual.
DEALER INQUIRIES ARE INVITED Tutorial.
DISK $84.95
FREE CATALOG Ask for a listing of other
Abacus Software for Commodore-64or Vlc-20 AVAILABLE AT COMPUTER STORES, OR WRITE:
Abacus SM Software
DISTRIBUTORS
Great Brttata: Btlgufm: Fnnce: Ntw Zulutf:
ADAMSOFT Inter. Services MICRO APPLICATION VISCOUNT ELECTRONICS
18 Norwich Aw. AVGullaum8 30 147 Avenue Paul-Doumer 308-308 Church Street
?£» Brus«l 1.160. Belgulm RueHIMjlm«i5on. France S^KSS"
706-524304 2-666-W
P.O. BOX 7211 GRAND RAPIDS. MICH. 49510
Witt Qirmany: Swtdin: Auitnlli:
DATA BECKER TIAL TRA0IN6 Forpostage & handling, add $4.00 (U.S. and Canada), add 16.00
CW ELECTRONICS
Merowingerstr 30 PO 516 416 Logan Road for foreign. Make payment in U.S. dollars by check, money order
*000 0«M«Wort 34300 AJmhutt Brisbane. Queens or charge card. (Michigan Residents add 4% sales tax).
0211/312085 476-12304 07-397-0808
Commodore 64 is a reg. T.M. of Commodore Business Machines FOR QUICK SERVICE PHONE 616-241-5510
Col. Bl Library
Augusta Me Health Inst.