ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab) (08/26/87)
[ Someone hand me the Pepto Bismol... ] My dear children, Do you realize that, since these miserable arguments started, technical contributions have dropped to near ZERO? Go over about the last 300 articles and you'll see what I mean. Now, let me see if I can finish off these arguments once and for all (he said, donning cape, drawing magic wand, and allowing his most warped thinking processes to surface): Macintosh MultiFinder --------------------- There has been very little technical discussion about the new MultiFinder from Apple, just opinions and flames. As such, without solid information, it is impossible to properly comment on the issue. So why have you been bothering? As it has been presented here, programs under MultiFinder voluntarily relinquish control of the CPU to allow other programs, should they exist, to run. This implies that, if a program decides not to relinquish the CPU, no other program, including the finder, will run. Assuming this is true, thus pretty much sinks any claims anyone may try to make about MultiFinder being multitasking. If you start a program that refuses (or merely neglects) to relinquish the CPU, then you won't be able to re-activate the finder to start another program. Ergo, single-tasking. This scenario seems patently ridiculous to me, so there must be something we don't know about MultiFinder's operation. Let's adopt a wait- and-see attitude, shall we? Amiga won't lose its edge *that* quickly... Amiga Exec ---------- Ever get the feeling no one except you understands what's going on? Like everyone's jousting with evil dragons, but only you can see that it's really a windmill? Exec is *NOT* UNIX. Exec is not **]] ANYTHING ELSE [[** except Exec. Exec was designed to interfere with running programs *as little as possible*. As such, it sports a very fast response time. Its philosophy is as follows: For all loaded tasks: If a given task is waiting for some event (signal) to occur, then it takes *NO* CPU time. It sits in the wait queue until some other task signals it, at which time, Exec will schedule it. Until this happens, however, Exec *IGNORES* this task. If a task is ready to run, Exec checks its priority and compares it with the priorities of all other ready tasks. If this task is *THE ONLY TASK* with the highest priority, Exec runs it and does not interrupt it further. Thus, this task will get all of the CPU. This task will be pre-empted *ONLY* if another higher-priority task becomes ready to run. If multiple tasks share the same (highest) priority, then Exec schedules them round-robin. I believe the quantum is 1/30 of a second (one video frame). This scheduling is pre-emptive. For all running tasks, a task may choose to wait for some event (keystroke, mouse movement, disk block, etc.). If a task chooses to do this, Exec stops the task and drops it in the wait queue. It then applies the previous rules to all remaining ready tasks, deciding which one to start running. If there *are* no ready tasks, Exec HALTs the CPU, keeping it off the bus (letting the custom chips reign freely). Only an interrupt will start things up again. From this, it is easy to determine what priorities tasks should be assigned. Interactive tasks should get the highest priority (since they will spend most of their "time" waiting for user actions), while CPU-bound tasks should get lower priorities. By logical extension, if a program "knows" that it is about to enter a long CPU-bound operation, it should voluntarily drop its priority a notch or two to allow other (hopefully interactive) tasks more CPU time so that they will continue to be responsive. To my knowledge, no Amiga programs currently do this (though it would be nice if they did). A prime candidate for such priority shifting activity would be spreadsheets. ISSUE: WorkBench disk objects (#?.info files) should have a field specifying the priority the task should be assigned on startup. Note: I'm not trying to display a holier-than-thou attitude here. But I like to think that I understand the philosophy and basis on which Exec was designed. Judging by some of the "priority fudging" algorithms and programs people have put forth for the Amiga, I begin to seriously wonder if these people share the same understanding I have. It is my contention that, if you carefully consider the context in which your program will be used, you can select a priority for it that will integrate well with the other programs that may be running. If your program's needs change depending on what it's doing, consider fudging your own priority to leave room for everyone else, or to increase your responsiveness. My Robotroff program has a facility to allow the user to change Robotroff's priority at any time. While designing the program, I tried to consider all possible scenarios where Robotroff might be active. Robotroff could conceiveably activate while DPaint was running. Since DPaint is a CPU hog (and Robotroff isn't), it would make sense to allow the user to bump Robotroff's priority to 1 so its performace wouldn't degrade. But normally, 0 is sufficient. The point is, I put the option in because I knew it might be an issue with some users. But PLEASE!! Don't fudge with someone else's priority. I'll close this topic with three good reasons why you should not do this: 1: You don't know what the other application is, and thus are not in a position to dictate what its priority should be. Suppose it's the Facc ][ interface. What's the point of bumping its priority up? Just because the user activated its window doesn't mean that it needs more CPU. 2: If this were a memory-protected system, this would be a definite no-no. You'd be blown out of the water very quickly. 3: It's not nice. The Amiga is a "social" machine. All programs assume that all other programs will be nice and obey all the rules. Changing everyone else's priority behind their backs is very anti-social. MIDI ---- As I understand it, all you need to do MIDI is a serial port that will run fast enough, and some level conversion hadrware. This pretty much inidcates to me that *ANY* computer can do MIDI, from a Timex-Sinclair to a Cray 2. What really counts is the MIDI control software running on the computer in question. From my information, software for the Macintosh wins this competition hands down. However, the fact that the Atari has the standard MIDI connector (so you can plug your cable in directly) is a nice win. Note that that's *ALL* it is: a nice win. The value of this connector is only in direct proportion to the quality of the software that uses it. Since I'm not a musician by any stretch of the imagination, I can't comment on Atari MIDI software. However, it should be recognized that just because the Atari ST sports a MIDI connector does not automatically make it the ideal MIDI controlling system; that is a software issue. My Computer Is Better Than Your Computer ---------------------------------------- Oh, please. Must we go through this again? I mean, if I *really* wanted to, I could convince you about how my SOL-20 is better than all this new stuff. EnableSmiley (); The SOL-20 is driven by a 2 MHz 8080 CPU. Instruction for instruction, this beats the stuffing out of a 6502 (and therefore, the Apple ][ series). The five slot S-100 backplane allows almost infinite expansion possibilities. The text screen is 64 x 16. This is actually quite good, since it's easier to program (multiplying by 64 is tons easier than multiplying by 80), and the screen memory is *exactly* 1K, meaning there are no wasted bytes. The operating system is SOLOS, a monitor ROM, which allows inspection and entry of raw memory bytes. It also will load and save raw memory images to and from either of the two cassette ports. SOLOS resides on a removeable "Personality Module", which means you can change it to anything you like. Thus, you're not locked into SOLOS if you don't want to be. SOLOS will also allow you to transfer control of the computer to an external terminal keyboard, through either the parallel or serial port. Thus, you can remotely control your computer via modem (your printer can also take it over if you want it to). And, SOLOS has a terminal emulator built-in, so you have no need to purchase a terminal program. The SOL-20 keyboard is fully-featured. You can assert true RESET from the keyboard, as well as a true serial BREAK. The keyboard can generate all 128 ASCII codes, as well as a few special one-character codes (high bit set). The keyboard also features a numeric keypad, with "+", "-", "*", "/", and "." keys. The machine is also very stylish, sporting real solid walnut end-panels, and an attractive and sturdy blue metal case that is easily removed. Clearly, a machine this well thought-out is better than anything else on the planet. DisableSmiley (); The point of the above diatribe is that you can make *any* computer sound like the best thing since sliced bread. We really ought to have a group called "talk.comp.compare" or something so we (I) can ignore this crud. Pixar ----- Okay, I know I started this one but it seems to be taking on a life of its own, which I don't need. I'm perfectly happy with the situation as it stands now. Think about it for a moment: If all the controversey were to end tomorrow, I would still be sitting in a very nice position. By involving themselves, Pixar has elevated my credibility as a graphics hacker to undreamed-of levels. I have also accomplished something I've always wanted to have happen: to have Pixar notice me. Granted, it wasn't under the best of circumstances, but at least they are now aware of my abilities as a computer graphic animator and general creative guy, which is something I've wanted for a while. So there. Epilogue -------- Now that we've covered everything, can we please move on to something more interesting? The signal-to-noise ratio has been dipping below zero of late..... I have my asbestos cape on, and my mailbox is prepared... _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ Leo L. Schwab -- The Guy in The Cape ihnp4!ptsfa -\ \_ -_ Bike shrunk by popular demand, dual ---> !{well,unicom}!ewhac O----^o But it's still the only way to fly. hplabs / (pronounced "AE-wack") "Work FOR? I don't work FOR anybody! I'm just having fun." -- The Doctor