In Memory of Sherm Erickson
I met Sherm years ago at the monthly Space meeting, like I have met other friends at Space. I was having a problem with my Atari computer system is how I met Sherm. Sherm was there to say " Hi, maybe I can help you out with your Atari problem." which he did there and several times after that.
Sherm was quite involved in many of the operations of the Space club. Member, co-sysop, vice president, club party organizer (Christmas and Club Birthday parties) and most recently President of Space club. Sherm as president had dreams for Space club's future, such as Internet. I hope as a club, we can carry on his dreams.
Just recently at the March Space meeting, Sherm said to me, "Mike you are going to have to get out to my place and I will have to show you some of my new toys(referring to something doing with a computer). Several times in the past, I had the opportunity to go out to Sherm's house and do some computing . I enjoyed myself. Sherm and his wife and family would treat me like a king, every time Every time I went out they would always have lunch or dinner for me because they thought I was starved. I will never forget the winter night I went out to Sherm's house, years ago to do some computing with Sherm and I got stranded out to his place because of a big snow storm. I didn't want to impose on Sherm, but he insisted he put me up for the night. Sherm provided me with sleeping quarters for the night and a big breakfast in the morning. That morning I had fun with Sherm, helping him clear 10 feet of snow from his driveway and trying to find my car. That day he trained me how to use his riding snow blower.
When it came to the semi-annual electronic shows, such as the amateur show, midwinter madness show, or the hamfest, Sherm was always at the Space meetings promoting these events. Sherm was always a regular at these electronic shows, I would run into him every time looking for bargains. He also would be a regular to volunteer to work behind the Space Computer booth at these shows help visitors with computer questions concerning there Atari computers. It was also a added opportunity for me and Mike Schmidt to talk computers. Several times, Sherm would disappear from behind the booth and then come back with hot Dogs and pop for the Space booth volunteers at the electronic shows.
Sherm Erickson was a good example of a Atari computer enthusiast. Whether at the Space meetings, electronic shows, or at Snuffys or Fudruckers Restaurant it was a lot of Atari computer talk, which I enjoyed. I learned a lot from Sherm and I think others did too!
In closing I will always remember Sherm Erickson as a good friend, a person always ready to jump in and help his fellow club members, Atari computer die-heart. From Sherm I will always remember that even though we are adults, there is nothing wrong with being a kid at heart and enjoying life.
God bless and take care of you, Sherm. You will be missed!
Mike Weist
Treasurer's Report by Greg Leitner
The March meeting got off to a rather sad start when Sherm announced that Nathan had resigned his office as President of SPACE. Nathan may never read this newsletter, but I want him to know that I really appreciated the years he served and his sincerity he showed to the Club and it's members. I don't know all the details of what led to Nathan's resignation but I'd like to say that I would like him to reconsider his decision. Sometimes we make these decisions on the spur of the moment not taking the time to sort out all the facts and really thinking things through.
Thanks to Sherm for taking over for Nathan. I know Sherm would like to see Nathan change his mind and reconsider. Atari was a big part of Nathan's life for some time and I know he will miss all of us just as we will miss him.
We had a good turnout for our March meeting and we even had a couple of new members to welcome into our Club. Counting membership renewals we had five memberships on record for the March meeting and with other miscellaneous sales we took in a total of $91.00. On the other hand we only had expenses for the BBS and newsletter which totalled about $35.00. So once again we had a net gain for the month and our bank balance now stands at $585.72. We should be getting a bill for $90.00 for the first quarter room rental for 1995 which would bring our balance down to around $500.00.
Our April meeting should be interesting as the BBS demo which was cancelled for the February and March meetings is now rescheduled for April. Come join us and see how to get the most out of our modems as we learn from the experts.
+----------------------------------------+
| Larry's |
| ACTION! TUTORIAL |
+----------------------------------------+
#7 LETS START PROGRAMMING
------------------------------------------
Writing programs is hard work! To get the
most out of your efforts, take a little
time to plan out your schedule. The chart
below will help you organized your program
to allow you to create even large programs
in a few short hours. Typing and testing
may take somewhat longer....
PROGRAM DEVELOPMENT CHART
1. Decide what the inputs and outputs of
the program will be.
2. OutIine the major tasks that need to be
done in the order they are to be done.
3. If there are many decisions to be made
by the computer, deveIop a flowchart.
4. Divide each task into its component
parts and look for similarities.
5. Group the simiIar tasks together to
determine which can be combined.
6. Develop a memory map of the computer,
showing where in memory the different
parts of the program are to reside.
7. Type in/write the MAIN procedure first.
Fill out the rest of the program,
testing each newly added routine for
errors and accuracy.
I will use this chart to write a function
that will add two strings of numbers.
Assuming I have a game where a player may
score in the milIions. I want a routine
that will increase the score beyond the
65535 limit.
1. For inputs, I will send it the current
score, and a string containing the
amount of increase: AddTo(score,"500")
The output should be placed back into
the score string before returning.
2. I must first find the least significant
digit of both strings, add these, store
the result and calculate a carry if
necessary. I must then add, store, and
carry the next set of digits, and the
next, until there are no digits Ieft to
add. Finally, the new value must be
placed back into SCORE.
3. There are not that many decisions, the
flowchart can wait for another issue.
4. This is a component task: increment.
There are repetitive tasks, but they
are specifically related to adding two
strings. For now, I don't see any
advantages to breaking them down, and
writing them as separate routines.
5. Nothing to group, its only one routine.
6. SCORE and the other string are provided
in the call, I will need a place to
hold the results until the operation
is done. This string can simply be
assigned a location by ACTION!
PROC AddTo(BYTE ARRAY s1,s2)
BYTE ARRAY result(15)
BYTE d1,d2,carry,digit,i
d1=s1(0) ;LSD (digit) of s1
d2=s2(0) ;LSD of s2
IF d1>d2 THEN ;Assign LSD of result
digit=d1+1 ;s1 is longer
ELSE
digit=d2+1 ;s2 is longer
FI
result(0)=digit ;Storage string length
result(1)='0 ;MSD just in case
carry='0 ;clear carry
WHILE d1>0 OR d2>0
DO
result(digit)=carry ;Handle carry
IF d1>0 THEN ;Still more s1
result(digit)==+s1(d1)-48
d1==-1 ;Next digit
FI
IF d2>0 THEN ;Still more s2
result(digit)==+s2(d2)-48
d2==-1 ;Next digit
FI
IF result(digit)>'9 THEN
result(digit)==-10
carry='1 ;Calculate carry
ELSE
carry='0
FI
digit==-1 ;Move to next digit
OD
result(1)=carry ;Store carry
IF carry='0 THEN ;Delete leading 0
FOR i=1 TO result(0)-1
DO
s1(i)=result(i+1)
OD
s1(0)=i-1 ;New length
ELSE ;carry=1 so copy as is
FOR i=0 TO result(0)
DO
s1(i)=result(i)
OD
FI
RETURN
------------------------------------------
It's YOUR turn!
+----------------------------------------+
| Larry's |
| ACTION! TUTORIAL |
+----------------------------------------+
#8 ADDING TO OUR UNDERSTANDING
------------------------------------------
If you had trouble using the AddTo routine
in last months issue, it may be due to not
supplying enough space to store the score
string. Here is a test example that will
use AddTo;
PROC Test()
BYTE ARRAY score(20)
BYTE i
score(0)=1 ;Initializing score to 0!
score(1)='0
FOR i=0 to 20
DO AddTo(score,"8001")
PrintE(score)
OD
RETURN
This month, we will again use the PROGRAM
DEVELOPMENT CHART to make a new routine
that will multiply two strings. As you
might guess, we will make use of the AddTo
routine from last month!
1. Like before, the routine will get two
string parameters and store the result
in the first parameter.
2. To multiply, the 1st parameter must be
added to itself as many times as are
indicated in the ones digit of the 2nd
parameter. Moving to the tens digit
of the 2nd parameter and a value that
is ten times greater than what the 1st
parameter was, we again add according
to the value in the tens place, etc.
3. Flowcharting comes later when there
are more conditions to consider....
4. We have a similarity, we need to add
one string to another, luckily it is
already available. (Reusable code!)
5. This is only a routine, not too many
similarities to try to group them yet.
6. Again we can let ACTION! handle string
memory assignments.
DEFINE smax="100"
(READ in AddTo in this area)
PROC MultiplyS(BYTE ARRAY s1,s2)
BYTE ARRAY temp(smax)
BYTE digit,value,inc,i
FOR i=0 to s1(0)
DO
temp(i)=s1(i) ;Init temp for adding
s1(i)='0 ;Clear result
OD
s1(0)=1 ;Init result
digit=s2(0) ;Ones place
inc=temp(0) ;*10 increment
WHILE digit#0
DO
value=s2(digit)-48 ;value of digit is
WHILE value#0 ;the # of additions
DO ;needed
AddTo(s1,temp)
value==-1
OD
digit==-1 ;Next digit
inc==+1 ;Increase temp * 10
temp(0)=inc ;by adding to length
temp(inc)='0 ;and storing a new 0
OD
RETURN
To help manage the string sizes, I have
included a DEFINE statement at the start
of this procedure. This statement must
manage the string in AddTo also. To
allow for this, change the declaration
line 'result(15)' to 'result(smax)' in
the AddTo procedure.
DEFINE simply substitutes whatever is in
quotes with every occurrence of the string
listed in the DEFINE statement. The
result of this is that the compiler will
use 100 every time it finds smax, this
makes for easy editing, without having to
parse through the entire program looking
for places that may need a new value!
Changing smax once, effects all other
occurrences, pretty neat eh?
Of course we want to see it in ACTION!
PROC Test()
BYTE ARRAY sc(smax)
BYTE i
sc(0)=1 ;MUST be initialized!
sc(1)='1
PrintE("Multiplication!")
FOR i=0 TO 15
DO
MultiplyS(sc,"99")
PrintE(sc)
OD
RETURN
Hey! This could be the start of a huge
calculator! Adding subtract and divide,
and a temporary register for complex
equations, and there it is! Hmmm....
------------------------------------------
Next month, we get back to BASICs!
Published by the Saint Paul Atari Computer Enthusiasts (SPACE), an independent organization with no business affiliation with ATARI Corporation. Permission is granted to any similar organization with which SPACE exchanges newsletters to reprint material from this newsletter. We do however ask that credit be given to the authors and to SPACE. Opinions expressed are those of the authors and do not necessarily reflect the views of SPACE, the club officers, club members or ATARI Corporation.