SPACE Newsletter March 1995

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!


DISCLAIMER

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.


Return to the SPACE Home Page


Maintained by Michael Current, michael@mcurrent.name
Last updated: June 7, 2003
URL:http://space.atari.org/newsletter/news9504.html