|The Atari SIG Historical Archive|
|Created and hosted by: atarimax.com|
|[ HOME | GO ATARI | 8-BIT | ST/TT | PORTFOLIO | LYNX | JAGUAR | LIBRARY ]|
Article #174 (214 is last): From: xx004@cleveland.Freenet.Edu (Atari SIG) Newsgroups: freenet.sci.comp.atari.product.8bit.zmag Subject: Z*Magazine: 15-Aug-89 #170 Reply-To: xx004@cleveland.Freenet.Edu (Atari SIG) Date: Sat Oct 2 15:10:15 1993 | 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......
(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