Copy Link
Add to Bookmark
Report
Syndicate ZMagazine Issue 170
| ROVAC ZMAGAZINE |
| Issue #170 |
| August 15, 1989 |
|Copyright 1989, RII|
|This week in ZMagazine|
Hard Drive Fundamentals
WK Whitton
Ratty's Rap, August 1989
Mat*Rat
Galactic Collisions
on your Computer
Michael D. Bjorkman
Crazy-Eights #7: Big House Atari
Robert Buman
Z*NET Newswire 8-bit Edition
Harold Brewer
Galactic Collisions program listing
|HARD DRIVE FUNDAMENTALS|
|by WK Whitton|
Reprinted from ST-ZMagazine #33
|Part 1|
The hard drive you have purchased, or
the mechanism you have dreamed of
owning, is a wondrously ingenious
device that employs some basic, and yet
at the same time, some highly advanced
features to offer you a device that
combines substantial data storage space
along with a high overall reliability
factor. The next few weeks we will
look into the rudiments of hard drive
technology with an eye on making the
novice familiar enough to make wise
purchase, use, and maintenance
decisions in the future.
In this first installment of our hard
drive series, lets take a look at some
of the terminology we will need to be
familiar with.
CYLINDER
This is a group or set of -tracks- that
share a common track number. For
example: all the track -1-s on your
hard drive produce one cylinder, and
all the track -2-s form another
cylinder, and the list goes on. There
is ONE set of tracks on each disk
surface. On a floppy disk, a cylinder
happens to refer to a particular track
that appears on both side 0 and side 1
of a disk.
DISK CACHE
This is a common means of improving
disk access performance by means of
saving the most recently read disk data
in the computer's memory. The very
next time the computer attempts to read
any data from your hard drive, the disk
cache copies it from your much faster
memory than from the actual hard drive.
Cache programs will also work with
floppy drive systems.
DMA
Stands for -Direct-Memory-Access-.
This is a high speed technique of
transferring data between RAM and your
hard drive or any other external
device. This has been extensively used
on the ST, and with some recent
developments on the Amiga side by
Supra. This special IC, the DMA chip,
is basically a manager of sorts that
handles requests for memory access from
your CPU and other devices.
ECC
-Error Correction Code- is a system
devised by IBM to deal with the problem
of normal surface defects of hard
drives and data integrity. Allows up
to 11 contiguous bits of data, which
have been scrambled during the
read-back process, to be interpreted
properly.
ESDI
-Enhanced Small Disk Interface- uses an
enhanced -ST506- method, basically is
serial data transference. This
increased the total data transfer rate.
FAT
-File Allocation Table-. This is a
master table on your hard drive and
floppy disk. Used to manage the free
space on the disk along with various
other pieces of information concerning
the data stored on the drive.
MEDIUM
The material inside the hard drive that
holds the magnetically stored
information. Generally used coatings
are iron oxide and various other
alloys. Coatings can sometimes be
determined by color--rust would be iron
oxide and silver wold signify use of a
metal oxide.
MFM
Modified Frequency Modulation. This is
still the most common method of hard
drive data encoding schemes. This
allows the hard drive to store 17
sectors per track.
PARTITION
This is the division of a single hard
drive mechanism into 2 or more logical
segments that your system sees as if
they were individual drives.
Partitions are formatted independently,
and with the ST, can even support
different disk operating systems (i.e.
ST-Macintosh-IBM, and now Atari 8-bit!)
all on the same drive.
READ/WRITE HEAD
This is a piece of magnetized iron
critically positioned above the
magnetic media, and its function is to
read or write data to your drive.
RESERVED CYLINDER
This is the innermost cylinder of a
hard drive, and is reserved for parking
the heads when you turn your hard drive
off.
RLL
-Run-Length Limited-. Allows much
higher density data storage than the
MFM method. Its key to success is the
fact that it does limit the distance
(or Run-Length) between magnetic flux
reversals on the platter of your hard
drive. When the hard drive head
magnetizes the disk coating, it creates
a small magnetic field, which has
opposite poles. The head
systematically reverses the direction
of these fields to delineate bits.
This scheme allows storage of 26
sectors per track.
SCSI (Skuzzy)
Stands for: -Small Computer System
Interface-. This is a high-speed hard
drive interface that is capable of
transferring data in a parallel manner
(8 bits at a time normally). This
means it transfers data one -byte- at a
time. Although one hard drive
mechanism with SCSI allows over 1 Meg
per second to be transferred, it is
much more common to see todays fast
3 1/2- SCSI drive mechanisms transfer
over 550K a second on the ST (such as
on the Seagate 157N).
SECTOR
This is a sub-area, or a smaller piece,
of a track. Each sector begins with
special addressing information, and is
then followed by 4096 bits of data
arranged in 512 bytes (or 2048 bits of
data arranged in 256 bytes).
TRACK
This is one of the many rings on the
surface of the hard drive platter that
the read/write head passes over.
|RATTY'S RAP, AUGUST 1989|
|by Mat*Rat|
Reprinted from the August Z*NET
Here is my latest experience with the
Action! programming language--the
language I LOVE to HATE!
Take a look at this piece of code:
BYTE ARRAY StrngThing = -This is stuff-
INCLUDE -D4:SYSALL.ACT-
Guess what happens when you compile
that? You ALWAYS get error 170. Why?
Because the Action! compiler looks on
drive 1 for SYSALL.ACT instead of
drive 4 as specified. Change it to:
BYTE ARRAY StrngThing = -This is stuff-
BYTE FRED
; or other declarations that aren't
; initialized strings
INCLUDE -D4:SYSALL.ACT-
Voila! It works. Now, why doesn't
THIS work:
TYPE MyRecord = [ CARD Points
BYTE POINTER X, Y ]
I always get an error 6 on the BYTE
POINTER! Can't a pointer be part of a
record? What's the deal? A byte
pointer is the same size as a CARD.
So, I do this:
TYPE MyRecord = [ CARD Points, X, Y ]
Now, how do I use X and Y as pointers
instead of cardinals?
Has anyone ever noticed how poorly
organized the Action! documentation is?
I'm going insane here. I finally took
Craig's advice and put tabs at the
beginning of every important section of
the manual (except for the error
section--I've GOT to remedy that). Now
I find things more easily, but
golly--where are the examples? I'm
going berzerk here. I'm about this
close [] to running my Action!
cartridge through the garbage disposal
and whipping out MAC/65. However, the
size of my current project is a bit
daunting from a 6502 assembly language
perspective.
HELPPPPPPPPP???????? Where are you
Action! gurus? Where are examples?
Why isn't there an ACTION! topic in the
data libraries here?
Argggggggggggggggggggggggggg......
<poof> (Oops, my mind just went up in
smoke)
...And so it was last week on GEnie,
when I was going nuts trying to figure
out how to load a large data file from
disk and create an array of pointers to
each record. As it turns out, CARDs
can be treated as POINTERs any time you
like. Action! doesn't much care.
Craig S. Thom, of ICD, was very helpful
in getting me up to speed in Action!,
and I got my program running in just a
few days.
Action! is a superb, terribly
underrated language. Why? First, the
manual. I'm certain a lot of people
purchased Action! with the intention
of learning a new -high level-
language, only to be intimidated and
frustrated by the poorly organized and
confusing documentation. There is no
index. There is no ONE table of
contents, but rather one for each
section of the book. There is no
alphabetical listing of all the
functions and procedures for the
language. I'm certain Action! becomes
a rather harrowing experience for many
newcomers. It drove me nuts, and I'm
fluent in more programming languages
than some software corporations!
The other problem is a run time
library. What's that, you ask?
Exactly. The manual doesn't make it
very clear that your Action! programs
aren't much good to you without the
Action! cartridge installed. For an
extra $30 or so you can acquire a -run
time library- from ICD or download a
public domain version from GEnie or
CompuServe. When you -INCLUDE- this
file, all of the system calls made to
the Action! cartridge are replaced by
calls to in line assembly code. The
resultant program file is no longer
dependant up on the cartridge for
anything. These programs may be loaded
and run from DOS, without the
assistance of the Action! cartridge,
and may be exchanged with friends.
Action! needs a new manual. Maybe I'll
write one. I haven't decided, but
something needs to be done. Action! is
better than any disk based C or Pascal
compiler for the 8-bit Ataris (though I
must admit to not having tested Kyan
Pascal). If you learn Action! and
pursue structured programming
techniques and good coding style, you
will have few problems moving up to a
-real- high level language such as C or
Pascal when you move on to an IBM,
MacIntosh, or Atari ST and more
sophisticated programming assignments
in the future.
I will be looking at Action! more in
future installments of Ratty's Rap, and
may provide a few tutorials along the
way. Analog doesn't think very many
people are interested in the language,
and does not want a column on the
subject. Well, I plan to get all you
latent Action! gurus fired up, and
change that! I suggest that we start a
revolt and REFUSE to use the
exclamation point after Action!--what
is a punctuation character doing in the
name anyway? It seems like the
language is YELLING at you. Maybe
that's why so many would-be Action!
programmers are intimidated?
The September issue of Analog is out.
You may have read the letter from
the publisher Lee Pappas about merging
Analog and ST-Log once again. He
paints a pretty grim picture for both
the 8-bit and ST. Of course Mr. Pappas
is also involved in the publication of
Video Games & Computer Entertainment
(VG&CE) and Laptop Computers magazines,
both of which are selling like wild
fire in comparison to their ROOTS
magazines ST-Log and Analog. So, it's
understandable that he is a bit
pessimistic.
I guess we won't really know for sure
until the Christmas buying season
begins--Atari has promised a lot of
pleasant surprises, but will they
deliver? Will we see the Lynx (their
portable game machine) by the end of
September? Will the Portfolio see the
light of day? Will Atari deliver SEVEN
TIMES the amount of US advertising that
they did last year? (Did you ever
notice how Atari always mentions
MULTIPLES of their advertising dollars?
Ever wonder why? Well, it SOUNDS
great, and any number times zero is
still zero. So, Atari makes good public
relations and saves money too!
Ok, seriously, it probably isn't THAT
bad. But, one popular inside joke is
that the fastest way OUT Atari's
revolving door is to say the word
ADVERTISING within the hallowed walls
of Atari Sunnyvale! What about the
long rumored (say about 4 years or
more) TT, Atari's answer to America's
demand for an affordable workstation.
Hewlett Packard has licensed a company
in Japan to clone their popular
workstation technology, for less than
$5000 per copy. Can Atari's TT compete
with that? (And we're talking a
MEGAPIXEL, 1024x1024, resolution
folks!) Atari makes a lot of noises at
the shows, but consider this: if a
tree falls in the woods and no one is
there to hear it, no sound is made. Is
anyone listening to Atari any more?
Mat*Rat
Ratware Softworks
32 S. Hartnett Ave.
St. Louis, MO 63135
P.S. Keep those cards and letters
coming. Please DON'T CALL--I seldom
have time to chat on the phone with a
wife, 2 kids, a dog, a cat, college
study, a full time job (with overtime
lately), and a backlog of article
work to the ceiling.
|GALACTIC COLLISIONS ON YOUR COMPUTER|
|Adapted by Michael D. Bjorkman|
Courtesy of S*P*A*C*E
From an original program by
Michael C. Schroeder and Neil F. Comins
First published in Astronomy Dec. 1988
In many ways the microcomputer of the
1980s is just as capable of doing
scientific calculations as the
mainframe computer of the 1960s. Even
though the microcomputer has a slower
CPU, often the amount of wall clock
time spent on a calculation is
comparable to 1960s mainframe time
sharing systems jugged up with many
users. Even more speed advantage can
be realized when comparing to batch
jobs where the printed output was
mailed to the user. (The mail really
slows down turn around time.)
The one significant difference between
1960s mainframes and microcomputers is
that there currently are far more
micros than there ever were mainframes
in the 1960s. Furthermore, many
microcomputers are in private
individuals' hands while most likely
none of the 1960s mainframes were.
What this all means is that it is now
possible for the amateur scientist to
perform 1960s-type research grade
numerical computations at home in his
spare time. Which brings us to the
topic of this article: galactic
collisions on a personal computer.
The DEC 1988 issue of the popular
magazine, -Astronomy- had a fascinating
article by Schroeder and Comins on
simulating the collision of two
galaxies using a microcomputer. The
question the 1960s theorist desired to
answer was, -How much of the observed
structure of interacting galaxies is
due to gravitational interaction, and
how much to other sources?-
SOLUTION METHOD
Solving the equations of classical
mechanics analytically for the motion
of many stars in a galaxy would be too
tedious to even contemplate starting
the effort. Since an analytic solution
is not available, numerical
approximation procedures are used.
Therefore a computer is the desired
method for solving for this problem.
However, if the number of stars becomes
large, then even the numerical
approximation procedure would be too
taxing for the 1960s mainframe.
To get around this difficulty a
simplifying assumption is made: the
stars orbiting the TARGET galaxy have
vanishingly small mass with respect to
the massive centers of the TARGET and
the INTRUDER galaxies. Since the stars
have vanishingly small mass, they do
not exert gravitational forces on each
other or on the centers of the
galaxies. Therefore, the only
gravitational forces which need be
calculated are the force between the
centers of the two galaxies, and the
forces from the centers of the two
galaxies on the stars.
Listing 1 is a program which will
perform this calculation. The program
was originally published as GW BASIC
source code for the IBM PC in the DEC
1988 issue of Astronomy. I have made a
few changes to the program to make it
run on the 8-bit Atari. Note that
since Schroeder and Comins wrote the
program in plain vanilla BASIC, it can
easily be adapted to the ST by
rewriting the graphical output
routines.
RUNNING THE PROGRAM
Type in Listing 1 and save it to disk.
After saving the program, check it with
the Analog UNICHECK checksum program.
(Those who don't have UNICHECK can get
it from the S*P*A*C*E disk library,
disk #15.) Listing 2 contains the
UNICHECK checksum table for Listing 1.
(Do not type in Listing 2. Listing 2
is used in conjunction with the output
from UNICHECK to determine whether
there are typing errors and the line
numbers of the lines with typing
errors.) When all of the typing errors
have been eliminated SAVE the program
to disk as GC3D.BAS.
When RUN, GC3D.BAS will first prompt
you for the answers to seven questions.
The inputs for the program are:
1) the number of rings of stars
orbiting the TARGET galaxy center,
2) the number of stars in each ring,
3) the mass of the INTRUDER galaxy
center,
4) the initial coordinates of the
INTRUDER galaxy center,
5) the initial velocity of the INTRUDER
galaxy center,
6) the number of time steps to take,
and
7) whether the inputs are correct as
entered.
Due to the memory constraints of the
8-bit Atari, it is not possible to have
more than 100 stars orbit the center of
the TARGET galaxy. (Note that with
BASIC XE in EXTENDED mode on a 130XE it
would be possible to have more.) I
typically run the program with 5 rings
of stars, with 20 stars in each ring;
the maximum amount of stars possible
with this program.
The other inputs for two interesting
examples are given in the table below:
Results Mass fraction Time steps
X0 Y0 Z0 VX0 VY0 VZ0
Ring 1.00 65
7.5 0 35 0 0 -1
Whirlpool 0.25 300
-30 30 0 0 -0.34 -0.34
The column labeled mass fraction is the
answer to the third question on the
mass of the intruder galaxy. The
parameters X0, Y0, and Z0 are the
initial x, y, and z coordinates of the
INTRUDER galaxy, and VX0, VY0, and VZ0
are the x, y, and z components of the
initial velocity of the INTRUDER
galaxy. The final column labeled time
steps is the maximum number of time
steps necessary to show the final shape
of the TARGET galaxy. The sixth prompt
by the program is the request for the
number of time steps to take before
displaying the results on the video
monitor. The smaller the number
entered here, the more often the screen
will be updated with the new positions
of the stars.
The first set of input, labeled -RING-
in the above table will distort the
initial disk-shaped TARGET galaxy
structure into a ring shape when viewed
from above. This shape is similar to
the well known Cartwheel galaxy which
can be viewed in many books with
pictures of galaxies.
The units of the equations used by this
program are: one time step equals 1.2
million years, one screen pixel equals
500 parsecs (a parsec is a little more
than 3 light years), a mass fraction of
1.0 equals 20 billion solar masses.
Everything is big!
Atari BASIC performs these calculations
too slowly so I used interpreted
TurboBASIC to speed things up to a
tolerable pace. The ring galaxy
calculation will take about 10 minutes
with TurboBASIC, and the Whirlpool
galaxy calculation will take about 1
hour. (I was unable to get TurboBASIC
to compile GC3D.BAS. The TurboBASIC
compiler refused to compile array
elements which are set equal to
themselves. Some time after my several
hour debugging session to identify the
problem, I rediscovered that this
problem had been documented by Jeff
Colehour and Dick Hearsey in the April
1987 PSAN on page 19.)
For those using TurboBASIC the lines
2000-2040 can be replaced by the CIRCLE
command following the REM in line 1990.
Similarly the CIRCLE command in 2050
can replace lines 2060-2100, 2110 can
replace 2120-2140 and 2150 can replace
2160-2180.
(Editor's note: One may certainly
follow the previous instructions to get
this program up and RUNning. However,
by loading this program (found at the
end of this issue of ZMag) into your
word processor, deleting the preceeding
ZMagazine text, saving the result to
disk, then ENTERing the result when in
BASIC, the program should RUN.
(SAVEing this already ENTERed program
back to disk will result in greater
initial loading speed.))
|CRAZY-EIGHTS #7: BIG HOUSE ATARI|
|by Robert Buman|
8-bit librarian for SAGE
Spectrum Atari Group of Erie
(HEY: STICK AROUND FOR CONTEST NEWS AT
THE END OF THE ARTICLE!)
From the mail bag comes this month's
feature story. It turns out SAGE is
not the only Atari user group in Erie.
The other group is a small but
close-knit group that would probably
join our club if it weren't for one
small detail: they're all doing time
at the Erie County Prison! They call
themselves the Jailed Atari Information
League, or JAIL for short. Here's the
letter:
Dear Crazy-Eights:
You are probably wondering why someone
in prison is writing to you. You may
be surprised to know there are Atari
computer users here on the inside. A
while back some of us guys were getting
bored with reading and watching TV and
asked if maybe we could get acquainted
with computers. It wasn't too long
that we convinced the staff it was a
good idea. I think the two weeks of
banging cups against the bars at
midnight is what did the trick.
Just kidding, that's a little
JAIL-humor. People on the outside
think that we wear striped uniforms,
drag a ball and chain and smash rocks
all day. Not true. Prison life isn't
too bad once you get used to it.
The warden was a little doubtful at
first over the worthiness of our
request. He said -It takes too long to
learn how to use computers.- So I
answer him -We got time!- That's a
funny one, huh?
So after we convince him that a
computer would be the key to our
rehabilitation he buys us an Atari.
How about if I tell you a little about
some of the members. First there's me,
Jake. I'm what you'd call a permanent
fixture; 15 to 20 (years that is). So
they make me club president! Next
there's Frankie Fast-Fingers (6 to 10)
who can type 90 words a minute when
he's not cracking safes, Eddie the
stool-pigeon (8 to 10) whom we
tolerate, and Jimmy the Brain (7 to
11). There are a few more, but their
terms are too short to give them
mention. Just like any outside user
group, members come and go.
The computer came with some games. We
have Pac Man and Centipede, which are
OK, but our favorite games are Escape
from Epsilon, Dig Dug and Breakout. We
have the computer-version of Monopoly
too, but we don't play it anymore.
Everybody always wants to buy the jail
square and build hotels on it!
Also, we like the simulation programs.
The warden says they are good for our
rehab program. I had a great idea for
a stock broker simulation. Brain had a
couple ideas too. You play a gangster
in 1920's Chicago who totes a
sub-machine gun, and has his own
territory. I tell him, -Brain,
somebody already made that game!- Ok,
he says, and he comes up with another
one. This time your a gangster named
Clyde with a mol named Bonnie. You
travel around the mid-west in the
Thirties and rob banks. Hmm, somehow
that sounds familiar too.
I know a lot of people think of the
Atari as just a game machine, but we
like it for practical things too, like
figuring the odds for the football pool
and the daily numbers. Oh, what
wonderful things we could do with this
in Las Vegas!
We could always use more software and
equipment. If anyone would like to
mail us a modem that would be nice. We
could log onto the SAGE BBS or some of
the other information services. The
FBI has a large database that the boys
and I would love to access.
Well, so long for now, fellow Atari
people. If your ever in our neck of
the woods, stop in to visit!
PS: We are having a membership drive.
If you know of any likely candidates,
please send then our way. 'Course if
they really ARE likely candidates they
will be in here soon enough...
End of letter.
*** L O G O C O N T E S T ***
I must confess, our Crazy-Eights mail
bag has been getting thinner and
thinner. We have about a hundred years
worth of colorful complimentary labels
sitting around gathering dust. I had
to lay off half my staff!
BUT YOU CAN HELP!
Send anything:
Your computer! A lock of Keith
Ledbetter's hair! A G: String
autographed by Charles Johnson! A new
ribbon for my Star/Gemini-10! A John
Nagy wish list! Your dog! No, not
your dog, please, remember my cats...
If the above items are not available,
consider sending these:
E-MAIL. A postcard. A picture of you.
A picture of your club. More E-Mail.
Fan mail for Patty. Neat ideas for
future articles. Funny stories about
your computer club. An APAC picture of
your state bird. A listing of a short
program that does as little as
possible. A club newsletter containing
Crazy-Eights (SAGE Scroll doesn't count)!
If this kind of stuff doesn't interest
you, what about FIFTY BUCKS? OH, now I
have your attention!
Design a logo for CRAZY EIGHTS!
*** IT'S A CONTEST! FOR REAL! ***
The one and only Crazy Eights Logo
contest!
Send in your logo-entry in Koala
format, Micro-illustrator format or 62
sector graphics-8 format.
RULES: Anyone is eligible including
members of SAGE (I'll exclude myself.)
All entries become the property of
SAGE. Entries will not be returned, so
keep a copy for yourself. Logo must be
an Atari 8-bit file in one of the
formats listed above. Entries must be
received/postmarked by November 1st,
1989. Entries will be judged on
originality, creativity and good taste.
Judging will take place at SAGE's
general meeting in December 1989 by the
membership of SAGE.
Your entry can be F-mailed via GEnie
(directed to LAKE31), entered during
any SAGE general meeting or mailed to
SAGE's P.O. Box:
SAGE attn: CRAZY EIGHTS
BOX 10562
Erie PA 16514
Grand prize--a Cashier's check for
FIFTY DOLLARS! Second prize--five SAGE
Public domain library disks. Third
prize--three SAGE disks.
Free colorful complimentary labels for
every entry! That's one way to get rid
of them!
Any questions? You gotta write or send
E-mail!!!
Good luck! *** BOB ***
|Z*NET NEWSWIRE 8-BIT EDITION|
|by Harold Brewer|
From issue #33 of ST-ZMagazine
comes this excerpt found in -The
Editor's Desk- by Ron Kovacs:
-...Finally, there are TWO Bulletin
Boards I have added to our growing
list. One is 8-bit oriented having
networked messages bases with
Philadelphia, Illinois, and Florida.
Also included in the networking is the
Ask The Rat message base where you can
leave messages to Matt Ratcliff. Call
the Blank Page BBS at (201) 111-1111.
The other system is called the Ace's
High BBS at (201) 111-1111. Supports
the ST with numerous message bases,
auction area, on-line story base,
hundreds of public domain ST software,
and a complete library of ST*ZMAG
online without download quotas. This
is an exclusive AUA (Atari Users
Association) member and BBS of the
newly formed RACE Atari Users Group.-
From the GEnie Atari 8-bit
Bulletin Board comes word from
John Crosby that 130XEs which are
now being sent to dealers feature
an updated PCB assembly and O.S.
ROM.
John says the new 130XEs are
using 256K DRAM chips instead of
original 64K chips, and these
256K chips (only 4 are used) are
divided into 64K x 4. He goes on
to say this configuration is
compatible with earlier 130XEs.
The O.S. changes, according to
John, fix an SIO problem and
feature a changed memory self-test
which now includes the 64K of
banked RAM.
John concludes his remarks with
the observation that this update
by Atari may fortell enduring
8-bit availability.
| Rovac Industries, Incorporated |
| P.O. Box 59, Middlesex, NJ 08846 |
| (201) 968-8148 |
|Copyright 1989 All Rights Reserved|
Reprint permission is granted
providing ZMagazine and the original
author is credited.
CompuServe: 71777,2140
GEnie: ZMAGAZINE
Source: BDG793
ZMagazine Headquarters BBSes:
Centurion BBS--(618)451-0165
Chaos BBS--(517)371-1106
Shadow Haven--(916)962-2566
Stairway to Heaven--(216)784-0574
1000 REM GALACTIC COLLISIONS
1010 REM BY M.C. Schroeder and N.F. Comins
1020 REM Originally published in ASTRONOMY, DEC 1988
1030 DIM X(100),Y(100),VX(100),VY(100),Z(100),VZ(100),ANS$(5)
1040 GRAPHICS 0
1050 POSITION 2,1:PRINT -# of rings of stars:_-;
1060 INPUT NRR
1070 POSITION 2,3:PRINT -# of stars per ring_-;
1080 INPUT NRS
1090 NS=NRR*NRS:DR=20/(NRR-1)
1100 POSITION 2,5:PRINT -Mass of INTRUDER galaxy in units of-
1110 PRINT -_TARGET galaxy mass:_-;
1120 INPUT M2
1130 POSITION 2,8:PRINT -Initial X,Y,Z coordinates of the-
1140 PRINT -_INTRUDER galaxy:-
1150 PRINT -_TARGET galaxy is located at 0,0,0.-
1160 POSITION 20,9:INPUT X2,Y2,Z2
1170 POSITION 2,13:PRINT -Initial X,Y,Z velocities of the-
1180 PRINT -_INTRUDER galaxy:-
1190 PRINT -_TARGET galaxy is initially at rest._-;
1200 POSITION 20,14:INPUT VX2,VY2,VZ2
1210 REM
1220 POSITION 2,17:PRINT -# of time steps for this run:_-;
1230 INPUT NTSPR
1240 POSITION 2,20:PRINT -Are these inputs correct (Y or N)-;
1250 INPUT ANS$
1260 IF ANS$(1,1)=-Y- THEN 1280
1270 GOTO 1040
1280 GRAPHICS 8:COLOR 1
1290 POSITION 0,1:PRINT -______________Thinking....-
1300 M1=5:X1=150:Y1=100:VX1=0:VY1=0:Z1=0:VZ1=0:SF2=2
1310 REM Initialize star positions
1320 TSTEP=0:M2=M2*M1:X2=X2+X1:Y2=Y2+Y1:Z2=Z2+Z1
1330 REM
1340 FOR IR=1 TO NRR
1350 R=10+(IR-1)*DR
1360 V=SQR(M1/R):TH=(0.5*V/R)*(180/3.14159)
1370 IF R=10 THEN V=0.9*V
1380 FOR IT=1 TO NRS
1390 T=(IT-1)*360/NRS
1400 T1=3.14159*(T-TH)/180
1410 I=I+1
1420 REM
1430 X(I)=R*COS(T/57.2958)+150
1440 Y(I)=R*SIN(T/57.2958)+100
1450 VZ(I)=0:Z(I)=0
1460 REM Initialize star velocities
1470 VX(I)=-V*SIN(T1)
1480 VY(I)=V*COS(T1)
1490 NEXT IT
1500 NEXT IR
1510 GOSUB 1880
1520 REM Particle pusher routine
1530 FOR K=1 TO NTSPR
1540 FOR J=1 TO 1
1550 FOR I=1 TO NS
1560 REM
1570 R1=M1/((X(I)-X1)^2+(Y(I)-Y1)^2+(Z(I)-Z1)^2+SF2)^1.5
1580 R2=M2/((X(I)-X2)^2+(Y(I)-Y2)^2+(Z(I)-Z2)^2+SF2)^1.5
1590 REM
1600 AX=R1*(X1-X(I))+R2*(X2-X(I))
1610 AY=R1*(Y1-Y(I))+R2*(Y2-Y(I))
1620 AZ=R1*(Z1-Z(I))+R2*(Z2-Z(I))
1630 REM
1640 VX(I)=VX(I)+AX
1650 VY(I)=VY(I)+AY
1660 VZ(I)=VZ(I)+AZ
1670 X(I)=X(I)+VX(I)
1680 Y(I)=Y(I)+VY(I)
1690 Z(I)=Z(I)+VZ(I)
1700 NEXT I
1710 REM Update positions and velocities of galactic centers.
1720 RR=((X1-X2)^2+(Y1-Y2)^2+(Z1-Z2)^2+SF2)^1.5
1730 AX=(X2-X1)/RR:AY=(Y2-Y1)/RR:AZ=(Z2-Z1)/RR
1740 VX1=VX1+M2*AX:VY1=VY1+M2*AY:VZ1=VZ1+M2*AZ
1750 VX2=VX2-M1*AX:VY2=VY2-M1*AY:VZ2=VZ2-M1*AZ
1760 X1=X1+VX1
1770 Y1=Y1+VY1:Z1=Z1+VZ1
1780 X2=X2+VX2
1790 Y2=Y2+VY2:Z2=Z2+VZ2
1800 TSTEP=TSTEP+1
1810 NEXT J
1820 GOSUB 1880
1830 NEXT K
1840 PRINT -____Continue (Y OR N)-;:INPUT ANS$
1850 IF ANS$=-Y- THEN 1530
1860 GOTO 2290
1870 REM Update screen display
1880 GRAPHICS 8:SETCOLOR 2,0,0:SETCOLOR 1,0,14:POKE 77,0
1890 REM
1900 XC=(M1*X1+M2*X2)/(M1+M2)
1910 YC=(M1*Y1+M2*Y2)/(M1+M2)
1920 ZC=(M1*Z1+M2*Z2)/(M1+M2)
1930 REM
1940 PLOT 0,150:DRAWTO 319,150
1950 PLOT 160,0:DRAWTO 160,150
1960 REM
1970 XX1=(X1-XC):YY1=(Y1-YC):ZZ1=(Z1-ZC)
1980 XX2=(X2-XC):YY2=(Y2-YC):ZZ2=(Z2-ZC)
1990 REM CIRCLE (XX1+80),(YY1+75),2
2000 FOR I=-1 TO 1:PLOT XX1+80+I,YY1+75-2:NEXT I
2010 FOR I=-2 TO 2 STEP 4:PLOT XX1+80+I,YY1+75-1:NEXT I
2020 FOR I=-2 TO 2 STEP 4:PLOT XX1+80+I,YY1+75:NEXT I
2030 FOR I=-2 TO 2 STEP 4:PLOT XX1+80+I,YY1+75+1:NEXT I
2040 FOR I=-1 TO 1:PLOT XX1+80+I,YY1+75+2:NEXT I
2050 REM CIRCLE (XX1+240),(2*ZZ1+75),2
2060 FOR I=-1 TO 1:PLOT XX1+240+I,(2*ZZ1+75)-2:NEXT I
2070 FOR I=-2 TO 2 STEP 4:PLOT XX1+240+I,(2*ZZ1+75)-1:NEXT I
2080 FOR I=-2 TO 2 STEP 4:PLOT XX1+240+I,(2*ZZ1+75):NEXT I
2090 FOR I=-2 TO 2 STEP 4:PLOT XX1+240+I,(2*ZZ1+75)+1:NEXT I
2100 FOR I=-1 TO 1:PLOT XX1+240+I,(2*ZZ1+75)+2:NEXT I
2110 REM CIRCLE (XX2+80),(YY2+75),1
2120 FOR I=-1 TO 1:PLOT XX2+80+I,YY2+75-1:NEXT I
2130 FOR I=-1 TO 1 STEP 2:PLOT XX2+80+I,YY2+75:NEXT I
2140 FOR I=-1 TO 1:PLOT XX2+80+I,YY2+75+1:NEXT I
2150 REM CIRCLE (XX2+240),(2*ZZ2+75),1
2160 FOR I=-1 TO 1:PLOT XX2+240+I,(2*ZZ2+75-1):NEXT I
2170 FOR I=-1 TO 1 STEP 2:PLOT XX2+240+I,(2*ZZ2+75):NEXT I
2180 FOR I=-1 TO 1:PLOT XX2+240+I,(2*ZZ2+75)+1:NEXT I
2190 REM
2200 FOR I=1 TO NS
2210 XP=(X(I)-XC):YP=(Y(I)-YC):ZP=2*(Z(I)-ZC)
2220 PLOT (XP+80),(YP+75):PLOT (XP+240),(ZP+75)
2230 NEXT I
2240 REM
2250 POSITION 0,0
2260 PRINT -______X-Y-,-_______X-Z-
2270 POSITION 0,2:PRINT -time=-;TSTEP;
2280 RETURN
2290 GRAPHICS 0:END
LISTING2: UNICHECK Checksum Table
1000 DATA 165,671,453,15,46,429,949,193,954,778,966,229,947,665,470,7930
1150 DATA 274,517,426,474,451,135,282,332,513,953,127,888,717,987,614,7690
1300 DATA 662,423,751,287,629,427,152,343,642,604,900,515,289,702,698,8024
1450 DATA 588,443,733,420,744,736,976,941,963,148,472,296,812,826,299,9397
1600 DATA 19,32,45,296,596,603,610,573,581,589,505,318,757,122,396,6042
1750 DATA 415,757,224,766,240,639,512,986,517,458,981,749,406,25,308,7983
1900 DATA 349,355,361,305,733,699,308,460,473,170,153,90,593,86,153,5288
2050 DATA 423,434,284,382,282,429,143,157,594,155,429,438,382,438,289,5259
2200 DATA 460,767,391,495,287,208,547,449,795,537,4936