I find this a fascinating subject. But there seem to be so many dead ends. Here is a page I found some time back with Lisp OSes. There are many dead projects mixed in if I remeber correctly.http://linuxfinances.info/info/lisposes.html

This one seems very interesting.

http://common-lisp.net/project/movitz/"The Movitz system aspires to be an implementation of ANSI Common Lisp that targets the ubiquitous x86 PC architecture "on the metal". That is, running without any operating system or other form of software environment. Movitz is a development platform for operating system kernels, embedded, and single-purpose applications. There can potentially be several completely different operating systems built using Movitz."

Common Lisp on the metal would be an example of Common Lisp as Assembly, no? Project hasn't been posted to in years though.

I wrote a 8051 assember in Lisp- I took the approach of trying to "lisp-ify" the usual assembly language; ie make a domain-specific language using Lisp. So I built up "lispy" definitions of all the mnemonics, which when evaluated by the assembler, emit the 8051 machine code. There are also the usual dw, db etc directives. So essentially, a program is written using the native assembly mnemonics, but in Lisp as the sample program shows below;

A big win is being able to use Lisp's macro syntax to build up program structure. The assembler is multi-pass so forward declarations etc are OK, and a desk-check of the output machine code looks OK but I haven't run it yet. As you can see with push/pop I have namespace problems.. probably I should dig into that a bit more- in this case there is a collision w/ Lisp's functions of the same name- OTOH I want the usual Lisp functions available for macros etc but that leads to the symbol collision. An easy solution would be to put some extra syntax on the 8051 mnemonics so the collision doesn't occur- maybe an underscore or something.

Project is open source- would be happy to give out the source code but I've not posted it anywere..