[net.micro.6809] Coco III and MicroEmacs

knudsen@ihwpt.UUCP (mike knudsen) (09/15/86)

I'd like to second the request for further development
of Emacs for OS9, especially for 80-column hardware
like the PBJ WordPak.

What could uEmacs become on the Coco III under Level II?
Well, to start with, could we restore one of Emacs's
most valuable features, multiple buffers?
I can't express how valuable these are at work, but for
the existing Cocos uEmacs got stripped down to one buffer.
The trick may be to create a separate Data Module for each
file buffer being edited, and to switch the current buffer
into the working 64K address space.  I'm thinking ahead to
when we get 512K in the beastie.
How well does Level II provide for playing games with the
memory mapping?  Are such tricks supported, or are Level II
users just supposed to enjoy the one larger (almost 64K) space?
Will we have to "poke" the GIME chip's DAT registers "by hand?"

On that topic -- we know that since Level II switches out OS9
itself while a user's process is running, each process can have
almost 64K.  Can I assume the reverse also, that my version of
OS9 (booted plus any LOADed modules) can be almost 64K too,
or at least a lot bigger than under Level I?
I mean, no more ripping out Pipes, graphics, and modem drivers
just so I can compile larger C programs?  Imagine, putting
everything back in the bootfile, and then some!

	mike knudsen

PS: Is the Coco III keyboard truly interrupt-driven, or does it
still go dead while the disk is transferring data?
It's hard to call Coco OS9 "multi-tasking" until this restriction
goes away.
-- 
Mike J Knudsen /  \   ...ihnp4!ihwpt!knudsen
              / NO \
Bell Labs    / BABY \   (312)-979-4132 (work)
 (AT & T)   /ON BOARD\
            \GO AHEAD/    BORED SAILORS
IH 6D-319    \ & HIT/   go BOARDSAILING.
x4132         \ ME /
               \  /
Bell Labs pays  \/   me for my thoughts; my opinions are all mine!

dibble@rochester.ARPA (Peter C. Dibble) (09/17/86)

In article <1102@ihwpt.UUCP>, knudsen@ihwpt.UUCP (mike knudsen) writes:
> I'd like to second the request for further development
> of Emacs for OS9, especially for 80-column hardware
> like the PBJ WordPak.
> 
> What could uEmacs become on the Coco III under Level II?
> Well, to start with, could we restore one of Emacs's
> most valuable features, multiple buffers?
> I can't express how valuable these are at work, but for
> the existing Cocos uEmacs got stripped down to one buffer.
> The trick may be to create a separate Data Module for each
> file buffer being edited, and to switch the current buffer
> into the working 64K address space.  I'm thinking ahead to
> when we get 512K in the beastie.
Using data modules for the buffers would be tricky.  uEmacs stores
lines in linked lists.  Since a data module might be at different locations
each time you link to it this would have to be worried about.  They are
also difficult to expand/contract.
My first idea for handling multiple buffers is to fork a process for each
buffer.  Let it manage the buffer's memory and hand uEmacs one line at
a time through a data module.  I think uEmacs' structure would make this
"easy."
> How well does Level II provide for playing games with the
> memory mapping?  Are such tricks supported, or are Level II
> users just supposed to enjoy the one larger (almost 64K) space?

There are Level Two system calls that let you access memory by
physical address or by address space and offset.  They are NOT
very easy to figure out.  It took me many hours to decipher them enough
for the memory management chapters of the Complete Guide.

> Will we have to "poke" the GIME chip's DAT registers "by hand?"

   A very bad idea.  You could get OS-9 all wrapped around the axle.

> 
> On that topic -- we know that since Level II switches out OS9
> itself while a user's process is running, each process can have
> almost 64K.  Can I assume the reverse also, that my version of
> OS9 (booted plus any LOADed modules) can be almost 64K too,
> or at least a lot bigger than under Level I?

You can assume that -- with warnings.

> I mean, no more ripping out Pipes, graphics, and modem drivers
> just so I can compile larger C programs?  Imagine, putting
> everything back in the bootfile, and then some!
> 

Don't put non-OS stuff in your bootfile.  When OS-9/L2 processes
do a link, they map the address space of the module you link to into
your address space.  If you put a module (say GoToXY) in OS9Boot and
link to it from an application, the application gets all the modules
in the boot mapped in.  This is a dandy way to use up lots of memory.
Since the CoCo3 uses 8K pages, the optimum way to load modules is
from files with just under 8K in them.  You use at least one page
for each file you load so you might as well fill it.

Peter Dibble