|
![](/i/fill.gif) |
>> 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.
I'm pretty much certain that's not correct.
Under sufficiently heavy CPU load, the mouse pointer became slightly
less responsive. There's no reason for that to happen if it's all
implemented in hardware.
>> (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.
Sure. The OS does little or no error checking - it's faster that way. So
passing sufficiently invalid input to the OS will crash it. As will
writing data to low-numbered memory addresses, or to addresses which
don't exist, or addresses with are not aligned correctly. Or executing a
non-existent op-code, for that matter. Any number of things which, in a
protected-mode OS, would merely halt the offending process, would be an
OS crash under AmigaOS.
>> 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".
Clearly the graphics is being redrawn from scratch rather than being
recopied from an off-screen buffer. That a piece of software doesn't
take advantage of a feature doesn't mean the feature doesn't exist. It
seems to me that the attitude of modern software is "hey, why bother
optimising it? Just make the user buy more hardware."
> 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.
Yeah, gotta love that.
>> 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.
What in the world makes you think that? If you run two programs that
both try to use 100% CPU, they both end up getting approximately 50%
CPU. (And everything else becomes fairly slow.) Unless you start
altering priorities, anyway...
>> 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.
Agreed.
Interestingly, there were several virus scanner programs for the Amiga,
so clearly there were viruses around. I guess without the Internet, it's
just that much harder to catch one...
Post a reply to this message
|
![](/i/fill.gif) |