[comp.sys.atari.st] Xlisp and windows

ericco@ssl.berkeley.edu (Eric C. Olson) (03/27/91)

I've started developing an object oriented window system for the
Atari.  Has somebody already done this?  If so, what was your
approach (and how can I get it)?  If not, perhaps you'll be amused
at my attempt.

First, I haven't used by Atari in a long time (for programming).
I started to think about selling it, but I decided to give it a
review.

I've been (somewhat) following c.s.a.s.t, where someone mentioned
Xlisp.  Well, as I poked through my disks, I discovered that I
already had a copy.  Browsing through the documentation, I noticed
that it was kinda object-oriented.  But it did have any atari
interfaces really.

I'd also recently interviewed a guy from autocad who mentioned that
it used Xlisp as an extension language.

It looked pretty easy to add C code to Xlisp, so I added a couple of
bios functions to it.  And guess what ... it was easy -- so soon as
I remembered that bios function work and gemdos function almost work.

Grinning with success, I took on the AES -- which I vaguely remember
hating.  All I can say is that some of that old code must still be
cluttering my mind, since I quickly got a window going.

So, the long and the short of it is, I'm thinking about following this
up a little more seriously.  Before I commit, I'd like to know about
other atari work, and general interest in this.

The general direction would be toward a single large application that 
integrated other C source code applications into Xlisp objects.  The
idea being that it shouldn't be too hard to convert a C library into
an Xlisp object.  The AES interface will be my first attempt.  I'll
blow off any attempt at working with multiple screens, but I think
it will work with any VDI complaint device.

Hmmm,
Eric
--
Eric
ericco@ssl.berkeley.edu

david@doe.utoronto.ca (David Megginson) (03/27/91)

In <ERICCO.91Mar26232949@sdaf1.ssl.berkeley.edu>, Eric C. Olson writes:
> I've started developing an object oriented window system for the
> Atari.  Has somebody already done this?  If so, what was your
> approach (and how can I get it)?  If not, perhaps you'll be amused
> at my attempt.
> 

Well, obviously you will want this system to be able to multi-task.
Instead of writing the code yourself, you might think about using
Eric Smith's MiNT, which adds BSD-type extensions to TOS. You can
re-compile XLISP with GCC and ES's MiNT library to use MiNT by default.
MiNT will make it easier to put BIOS i/o into windows, manage multiple
threads of the same program, etc. etc.

BTW, to try out your ideas, try using XLISP under MGR. MGR is a
windowing system where all graphics, window management etc. is done
with escape sequences, and it runs on the ST under MiNT (ie. you draw
circles, open and resize windows, pass messages, etc., the same way
that you turn inverse video on and off on the vt52!!). You could write
all of the MGR code IN XLISP first (just print the appropriate escape
sequences to the screen), and then hard-code it into C if you want to.
The advantages of using MGR are that you can concentrate on the high-
level logic of your project instead of the nitty-gritty details of getting
BIOS output into GEM windows, etc. Also, your XLISP code will be portable
to Unix or Mac machines running MGR (Minix may soon have MGR too), so
you are looking at a much larger potential user base.

It sounds like an excellent idea, and I hope that it works out for you.
You will need at least 2 megs to use MiNT and MGR, I should add.


-- 
////////////////////////////////////////////////////////////////////////
/  David Megginson                      david@doe.utoronto.ca          /
/  Centre for Medieval Studies          meggin@vm.epas.utoronto.ca     /
////////////////////////////////////////////////////////////////////////