Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!wuarchive!gem.mps.ohio-state.edu!apple!cambridge.apple.com!alms From: alms@cambridge.apple.com (Andrew L. M. Shalit) Newsgroups: comp.lang.lisp Subject: Re: hypercard --- coral linkage Message-ID: Date: 5 Oct 89 15:30:14 GMT References: <344@delphi.ACA.MCC.COM> Sender: news@cambridge.apple.com Organization: Apple Computer Inc, Cambridge, MA Lines: 33 In-reply-to: db@delphi.ACA.MCC.COM's message of 4 Oct 89 21:58:43 GMT In article <344@delphi.ACA.MCC.COM> db@delphi.ACA.MCC.COM (David Murray Bridgeland) writes: Is it possible to link a coral/allegro/apple lisp image with a hypertalk program? I.e., I'd like to have a hypercard user interface to a program written in coral/allegro/apple (whatever they're calling it) common lisp. Has anyone done this? Several people have done this, but it's unfortunately still in the kludge stage because of OS limitations. Basically, Lisp and HyperCard need to run as separate applications under MultiFinder. You then set up an IPC link between the two of them. System 7 of the Mac OS will support real IPC (renamed 'IAC'). Until then you have to roll your own. Rolling your own IPC is the kludgey part. You basically need some common memory. three places to get this: in a disk file (easy but slow), in a resource of the system file (not sure if this really works), or in a driver (fast, but you have to write the driver). Then you have both applications polling this common memory, to see whether it has been changed. It's easy to poll from Lisp; with hypercard you probably want to write an xcmd. Once you have the IPC going, you send text back and forth. Lisp can read/eval what it gets, and Hypercard can do the same. We're in the middle of a crunch now, but if you get back to me in a couple of weeks, I'll see if I can dig up someone's version of this. -andrew