POV-Ray : Newsgroups : povray.off-topic : Fruit flavours : Re: Fruit flavours Server Time
29 Jul 2024 06:22:03 EDT (-0400)
  Re: Fruit flavours  
From: andrel
Date: 25 Mar 2013 17:57:11
Message: <5150C82F.5080906@gmail.com>
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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.