SPACE Newsletter JUNE 1995

News from the President

Well things are slowly coming along. Found the flyer that was put together last year that Lance of "Video 61" used with his orders to Atari customers. It can be utilized if needed by whiting out Sherm Erickson's name and phone #. Question is who is willing to be added to answer questions and promote the club to potential new or returning members?

I've been in contact with the President of SCAT, the Atari club that meets in the suburban area of Chicago. I plan on maintaining contact to share information about our two clubs and how we can possibly benefit each other.

I've also contacted two new Atari dealers that sell hardware, software, and books for the classic 8-bit as well as the ST.

Bob Puff of C.S.S. is still in business supporting the classic 8-bit but has dropped the Bit Writer from his catalog; reason: the arch enemy of any endevour, lack of support or interest.


Minutes of Space Meeting May 12, 1995

Space Meeting opened at 7:30 pm., with Mike Fitzpatrick presiding over the meeting. With the unexpected death of our Space Atari club president Sherm Erickson, Mike Fitzpatrick volunteered to act as president until the November '95 officer elections. Mike Fitzpatrick is also the Space club's BBS SYSOP. Mike's work schedule has made it possible for him to be at the Space meeting every month. Mike asked the membership for volunteers to help kept the Space club going. Mike Weist and Terry Streeter volunteered to help out.

Mike told the membership that things to think about are the club's solvency and doing a inventory of the club's property. Mike urged members to let him know if they have club property.

Mike said he has encouraged his business ST and 8-bit customers to come to the Space club meetings. If his customers do show up, they are given club literature. Mike said we must promote the club in a positive way and define the club's goals.

Larry Serflaten, a club member, said we must be more visible to the public. Roger Mier, another club member, suggested that the club make use of the InterNet, to advertize to other Atari computer users that the Space club is around. Larry Serflaten, also suggested that the club have a open house, to introduce people to our club.

A suggestion was made to print up some club advertisement. It was suggested to make up 3000 advertisements. The cost would be 3000 x $.02 = $60.00. Mike Fitzpatrick asked the Greg Leitner, Space Treasurer, if the treasury could handle this cost. He said he thinks it can.

A Space club member asked how many current paid up members there are. At the current time there are 24 members paid up.

Earline Fitzpatrick, club software librarian, asked Lance Ringquist, club Software and Hardware supplier, what phone numbers he was giving to his Atari business customers for Space club information. New phone numbers will be provided to Lance to give to his Atari business customers. Our Atari Space club information in area computer magazines will be updated to. Mike Fitzpatrick remarked that there are several places still selling Atari software and software.

In closing Mike Fitzpatrick asked the membership where we want to go as a club and what we want to do as a club. Asked club members to think about these things until the next meeting and come up with ideas. Meeting adjourned at 8:15 pm.

Mike Weist Club Secretary


Treasurer's Report by Greg Leitner

I can't remember the last time we held a meeting without a President or Vice President presiding over the meeting, I have to commend Mike Fitzpatrick for his leadership qualities in making the May meeting a very organized and professional affair.

Mike set the tone of the evening at the onset when he made it clear that our goal was not to make hasty decisions but to do a little soul searching. The Club definitely needs more input from all our current members and I got a good feeling by what I heard during the May meeting. Our Club has sufferred a great loss but we will survive.

The months receipts were very promising in that we had two membership renewals. Added to our Dom and blank disk sales our monthly take totalled $70.00. Our expenses were quite high for May because we paid for the first quarter room rental of $90.00 and we also paid for six months P.O. Box rental of $52.00. We also had a double hit on the BBS phone billing since we didn't meet in April and that amounted to $64.74. So the final tally shows that our balance was reduced by $136.74 for the month and our bank balance now stands at $448.98 for the month ending May 31, 1995.

Remember to mark your calendars for the June meeting and make sure to bring a list of any Club software, hardware or magazines that you may have borrowed so that we can get a much needed inventory of all our assets.

Earline Fitzpatrick also is planning to have an Ice Cream Social for the June meeting and the proceeds benefit the Club. So please come and support your Club and enjoy some ice cream too. See you all on June 9th.


+----------------------------------------+
|                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!

Return to the SPACE Home Page


Maintained by Michael Current, mcurrent@carleton.edu
Last updated: Saturday, April 20, 2002
URL:http://www.library.carleton.edu/space/news9506.html