|
![](/i/fill.gif) |
On 24-3-2013 14:05, Orchid Win7 v1 wrote:
>> I am afraid Andy is correct here (except for his prediction/observation
>> that the PC almost caught up, any generation of a PC system was
>> responsive when it came out of the box, but that stopped after you had
>> used it for some time).
>
>> The Amiga was a multiprocessor system with the GUI almost entirely
>> handled by a coprocessor/firmware/hardware, the distinction is hard to
>> make in this case.
>
> I'm not sure what you're trying to say with this...
That the Amiga managed to blur the distinction between these categories.
> The mouse was drawn as a hardware sprite overlay, so moving the mouse
> pointer involves poking new coordinates into some video registers. This
> takes a handful of compute cycles, and is easily implemented by a single
> interrupt handler.
IIRC it was not even that. I don't have my hardware books lying around
anymore, but I think the horizontal and vertical motion of the mouse was
determined by two bit gray codes. These two bits were directly connected
to the video chip and the coordinates of the mouse were updated in
hardware. No interrupt required.
> By default, dragging a window shows an outline. I believe there was an
> option somewhere to show full window contents while dragging. The Amiga
> had a dedicated chip for blitting areas of memory around, and
> particularly for blitting image data. That means the CPU just has to
> program a few parameters into this chip, and the window gets copied to
> its new location. Again, doesn't require much CPU power.
>
> Several parts of the OS are stored in an on-board ROM. (In particular,
> the pre-emptive task scheduler, the file-system drivers and the GUI
> rendering code.) That doesn't mean you *have* to use these; it just
> means that if you do, they don't need to be loaded from disk.
>
>> That meant that neither IO nor computations would
>> interrupt the GUI; even if you completely overloaded the machine with
>> computations and disk access the system was totally responsive visually.
>> Many times my Amiga completely hung on something but I could still move
>> the windows in real time, the mouse was functioning, even the buttons
>> could be pressed.
>
> Indeed. The Amiga was quite good at not doing that thing where
> everything stops responding until some event occurs.
>
> (Having said that, without memory protection hardware, one rogue process
> could crash the entire machine. But on the first hand, buggy software
> was rare on that platform.)
or a system call with a wrong parameter.
quoting from memory (from the OS library, that was documented, in
contrast to some other OSes):
"note: this routine does no error checking. If you ask it to move the
window to the end of the universe, it will. However, the resulting
distortion of time and space that will result from this is in general
not a pretty sight."
>> The only way a modern PC could even come close to such GUI performance
>> is when one processor would be set aside for GUI only with no other
>> tasks and even then the other processes could steal so many cycles that
>> the GUI is slowed down markedly.
>
> Well, my understanding is that modern graphics cards have hardware
> acceleration for graphical tasks too. So the situation shouldn't be too
> much different than how it was with the Amiga's custom hardware.
Then explain how I can sometimes see a window on a PC being refreshed
top down? Oh, you said "shouldn't" not "isn't".
Another thing that I can't get my head around is the concept that you
click on an object that is on screen when the click is handled, not on
the one that is on-screen when you clicked.
>> You can now complain that the screen resolution of the Amiga was much
>> less, that it was not a full implementation of a preemptive multiuser
>> system, that it had no virtual memory etc.
>
> 640x768 for the highest video resolution, which *is* fairly limited.
> (But we're talking about a long-obsolete platform, after all.)
>
> Pre-emptive: Yes. The OS is 100% pre-emptive. If some program goes into
> an infinite loop, you can kill it, and it *will* die. If some program
> tries to use all available RAM, it gets killed, and so forth.
At the user level it was not fully preemptive. You had to do an explicit
call to allow other programs to get some time too.
> Multi-user: No. Not even slightly. But hey, it's a home computer. It has
> no networking capabilities at all,
There were cards for that, but the basic machine did not have those.
> so there's less call for multiple users.
More of a design choice. But you had to assume all programs were
friendly. Something you would not do today.
> Virtual memory: The CPU used lacks the necessary MMU hardware to
> implement either virtual addressing, memory protection or virtual
> memory. Later on you could buy add-on cards that included the MMU, and a
> few people made software that allows virtual memory.
>
> (Adding memory protection would have broken applications. In particular,
> the OS messaging system fundamentally relies on zero-copy pointer
> passing, which doesn't work if each application lives in a different
> address space.)
>
>> But that is all irrelevant to
>> the observation that the Amiga had the best GUI response of any system I
>> have seen yet.
>
> Indeed.
--
Women are the canaries of science. When they are underrepresented
it is a strong indication that non-scientific factors play a role
and the concentration of incorruptible scientists is also too low
Post a reply to this message
|
![](/i/fill.gif) |