From: John P. Looney (jplooney-ilug at domain online.ie)
Date: Tue 29 Feb 2000 - 12:43:52 GMT
On Tue, Feb 29, 2000 at 12:24:40PM +0000, Colm Buckley mentioned:
> The other side of the decision was *which* of the 16 pages to reserve
> for applications and which to reserve for I/O. Here they made the
> "easy" decision which, in retrospect, was the wrong one. They decided
> to let applications have the lowest-numbered pages, and reserve
> high-memory for the I/O systems, so they'd be "out of the way".
Which, if you've done much assembly programming on machines that really
did have memory mapped I/O for "everything", was a good idea.
When programmers mess up with pointers, they generally didn't initialise
them, or put various low numbers in them. So, if your mmIO stuff is >
640K, it's out of the way.
There was a cool chip called the "blitter" on the amiga. You could get it
to copy memory from one place to the other (and do changes, and bit
manipulations, and draw lines...), quite fast - almost a meg a second!
Anyway. It used MMIO. You wrote to "to" and "from" addresses, and then to
a third "let rip" address. If you had a bug in your code, and the "from"
was in your own program code...it could put a great be pixmap in the
middle of your code.
Or worse, you could start writing all over the MMIO addresses. Result.
Pretty colours. Printer starting up. Floppy drive writing zeros to it's
media. Funny noise out of the speakers. General system failure. Annoyed
programmer.
At least if the MMIO was 640k away, it could give you an extra 30 seconds
or so in this case ;)
This archive was generated by hypermail 2.1.6 : Thu 06 Feb 2003 - 13:05:30 GMT