[LispM-Hackers] Interrupts work (mostly), and Yet Another Question

James A. Crippen james@unlambda.com
Sat Mar 9 22:44:01 2002


Tim Moore <moore@bricoworks.com> writes:

> On 9 Mar 2002, James A. Crippen wrote:
> 
> > Nyef <nyef@softhome.net> writes:
> > 
> > > > Suggestions?
> > > 
> > > (defun %write-port-8 (address data)
> > >     "Write 8-bit data value data to I/O port address."
> > >     ; FIXME: Implement
> > >     )
> > > 
> > > (defun interrupt-acknowledge (interrupt-level)
> > >     "Acknowledge an interrupt on a PC/AT or better class machine."
> > >     (if (> interrupt-level 7)
> > >         (%write-port-8 #xa0 #x20))
> > >     (%write-port-8 #x20 #x20))
> > 
> > Uhh, where's the compiler?
> > 
> > 'james
> 
> Indeed.  I'd think the plan would be to devote all your energy to getting
> the emulator running on the most convenient platform e.g., Linux, so you
> then have access to the compiler and can hack the system however you want
> for bare metal.

Right.  I'm in favor of building all the low level stuff in Lisp, but
we don't have a Lisp system to build within yet.  And there's no way
I'd see doing something like using CMUCL to build the bare metal stuff
as a good idea.  It would just result in a bare metal CMUCL system
being built with E3 running on top of it.  That's silly in my
opinion.  I think the bare metal stuff is great, but to do it right
(ie, in Lisp) we don't have the tools yet, and making them would be
prohibitive (anyone written an x86 Lisp compiler lately?).

'james

-- 
James A. Crippen <james@unlambda.com> ,-./-.  Anchorage, Alaska,
Lambda Unlimited: Recursion 'R' Us   |  |/  | USA, 61.20939N, -149.767W
Y = \f.(\x.f(xx)) (\x.f(xx))         |  |\  | Earth, Sol System,
Y(F) = F(Y(F))                        \_,-_/  Milky Way.