[ont.micro.mac] Speculations, ramblings and flame

info-mac@utcsrgv.UUCP (info-mac) (05/11/84)

Date: Thu 10 May 84 00:39:09-EDT
From: Michael Rubin <uw-beaver!RUBIN@COLUMBIA-20.ARPA>
Subject: Speculations, ramblings and flame (long)
To: info-mac@SUMEX-AIM.ARPA

    Fairly easy software hack: a printer driver called by the vertical blanking
interrupt, so you could compute while printing?  Only problem is it would
periodically have to read more data off disk, and I don't know if interrupt
routines are allowed to do that.

    All the documents say the mouse is handled at such a low level that there's
just no way to move the cursor somewhere else or even confine it to a
particular area.  Now, I can't really believe that, since the mouse just
outputs a pulse for every 1/90 inch of vertical or horizontal movement, and
anyhow the cursor is obviously confined to the limits of the screen.  Perhaps
the cursor is a sprite and handled entirely by the video interface, but that
seems real unlikely.  Now it may be that the mouse handler is entirely in ROM,
with no trap vector so it can be overridden like the Quickdraw routines.
However, the current mouse position is certainly not in ROM, so there has to be
an appropriate magical POKE that will do the job....?

    Now that the Apple IIC ("Apple II, crushed") is out, will the FlatMac be
far behind?  Well, it will have to wait for a 512x342 liquid-crystal display
because there's no way the Mac can output to a TV set or even a standard
monitor (it doesn't use ordinary video signals).  Apple is having enough
trouble getting Sharp to make a 560x192 LCD for the IIC -- all they want to
build are 640x200 displays for IBM-PC's and clones.  Figure about 18-24 months
for LCD production to catch up enough that odd sizes can be ordered.  BTW, does
anybody know how thick the IIC's LCD is going to be?  All the magazine photos
show a 3/4 front view with the unit tilted up, so the back might be anywhere
from flat to pyramid-shaped.
    Since the Mac CPU board is just under 9x9 inches (and contains the entire
workings of the machine except for the power supply and video electronics), it
would fit in the same size case as the IIC.  The disk drive is about 3/4"
thicker, so the case would have a bulge in back.  However, the drive is also
narrower, which would leave about two inches of space behind the keyboard --
just right for a trackball, and perhaps a small nicad battery pack (that room
might be needed for a board to control the LCD).

    Thoughts on the next machine in the Apple 32 line: The Mac is a neat
architecture except for lack of virtual memory, but it's I/O-bound.  The floppy
is none too fast, and the IWM disk controller grabs the entire CPU during disk
operations, which is nasty if you want to do serious multitasking.  A
Winchester can theoretically transfer data at 500Kbytes/sec, five times faster
than the serial port can theoretically receive it.  Now if the disks were only
memory-mapped like the video, stealing half the memory cycles, they would be
capable of at least the same transfer rate as the video -- 22Kbytes every 1/60
second, or 1200 Kbytes/sec!  Well, this could be done by turning off the screen
during disk I/O, but that would be even uglier than turning off interrupts.
Hmmm.... the video DMA uses only one fixed piece of memory, near the low end.
If the machine has at least two ranks of memory chips (256Kbytes of 64K chips,
or 1Mbyte of 256K chips), the memory bus could be cut in half during the memory
cycles reserved for DMA.  Then while the video hardware was reading the low
bank of memory, the disks (or any other devices) could be reading and writing
their buffers in high memory.  Some more complex disk controller than the bare
IWM would be needed, equivalent to an ordinary S-100 or Multibus DMA disk
controller.  Perhaps the IWM could be operated by another custom chip or just
some PAL's and shift registers.
    Another useful addition might be a smarter video controller, one that could
handle multiple bit planes and put them in arbitrary places on the screen
(basically giant sprites).  This would be nice for windows, but great for
animation.  Oops, if the bit planes are transparent and you have N of them at
one point on the screen, that means N memory accesses per pixel time.  On the
other hand, most of them probably wouldn't be transparent, and even one extra
bit plane would help a lot.

					--From the butane torch of:
					Mike Rubin <Rubin@Columbia-20.ARPA>
-------