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!