From mbealby at gmail.com Wed Mar 7 08:34:04 2007 From: mbealby at gmail.com (M Bealby) Date: Wed, 07 Mar 2007 08:34:04 +0000 (GMT) Subject: [movitz-devel] Simple VGA Graphics. Message-ID: <20070307.083404.41633730.mbealby@gmail.com> Well, it's a few months later than I planned, but I have basic VGA support (320x200x256) built into movitz now. Example screenshot here: http://www.bealbywm.plus.com/movitz/ss.png Once I actually understood what was required to get into graphics mode, coding it was actually very easy. Converting the image to the correct format took much longer. I'm going to flesh out some more graphics functions over the next few days and get a diff made up so everyone can have a play. Thanks everyone, Martin From _deepfire at feelingofgreen.ru Wed Mar 7 11:14:16 2007 From: _deepfire at feelingofgreen.ru (Samium Gromoff) Date: Wed, 07 Mar 2007 14:14:16 +0300 Subject: [movitz-devel] Simple VGA Graphics. In-Reply-To: <20070307.083404.41633730.mbealby@gmail.com> References: <20070307.083404.41633730.mbealby@gmail.com> Message-ID: <873b4huwzb.wl@betelheise.deep.net> At Wed, 07 Mar 2007 08:34:04 +0000 (GMT), M Bealby wrote: > > Well, it's a few months later than I planned, but I have basic VGA support > (320x200x256) built into movitz now. > > Example screenshot here: > http://www.bealbywm.plus.com/movitz/ss.png This is amazing! > Once I actually understood what was required to get into graphics mode, coding > it was actually very easy. Converting the image to the correct format took > much longer. > > I'm going to flesh out some more graphics functions over the next few days and > get a diff made up so everyone can have a play. > > Thanks everyone, > Martin From vikasnkumar at users.sourceforge.net Wed Mar 7 15:14:23 2007 From: vikasnkumar at users.sourceforge.net (Vikas N Kumar) Date: Wed, 7 Mar 2007 10:14:23 -0500 Subject: [movitz-devel] Simple VGA Graphics. In-Reply-To: <20070307.083404.41633730.mbealby@gmail.com> References: <20070307.083404.41633730.mbealby@gmail.com> Message-ID: <792c60620703070714j621f7610x15c52f48be9b8f6f@mail.gmail.com> This is great. I have forever wanted to learn how to do this. Do you have any starting points for learning ? Thanks Vikas On 3/7/07, M Bealby wrote: > Well, it's a few months later than I planned, but I have basic VGA support > (320x200x256) built into movitz now. > > Example screenshot here: > http://www.bealbywm.plus.com/movitz/ss.png > > Once I actually understood what was required to get into graphics mode, coding > it was actually very easy. Converting the image to the correct format took > much longer. > > I'm going to flesh out some more graphics functions over the next few days and > get a diff made up so everyone can have a play. > > Thanks everyone, > Martin > _______________________________________________ > movitz-devel site list > movitz-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/movitz-devel > -- http://www.vikaskumar.org/ From sabetts at andrew.cmu.edu Thu Mar 8 02:22:08 2007 From: sabetts at andrew.cmu.edu (sabetts at andrew.cmu.edu) Date: Wed, 07 Mar 2007 18:22:08 -0800 Subject: [movitz-devel] keyboard layouts Message-ID: Hi guys, I cleaned up my dvorak hack from ages ago. It rearranges some stuff and creates an exported function, x86-pc.keyboard:set-kbd-layout. call it with :dvorak or :qwerty to switch to that layout. default is qwerty, of course. So, now you can eval at the repl: (x86-pc.keyboard:set-kbd-layout :dvorak) -Shawn Index: losp/x86-pc/keyboard.lisp =================================================================== RCS file: /project/movitz/cvsroot/movitz/losp/x86-pc/keyboard.lisp,v retrieving revision 1.6 diff -u -r1.6 keyboard.lisp --- losp/x86-pc/keyboard.lisp 10 Dec 2004 12:48:34 -0000 1.6 +++ losp/x86-pc/keyboard.lisp 8 Mar 2007 02:18:06 -0000 @@ -25,57 +25,120 @@ read-keypress poll-key set-leds - cpu-reset)) + cpu-reset + set-kbd-layout)) (in-package muerte.x86-pc.keyboard) -(defvar *scan-codes-shift* - #(#\null nil #\! #\@ #\# #\$ #\% #\^ ; #x00 - #\& #\* #\( #\) #\_ #\+ nil nil ; #x08 - #\Q #\W #\E #\R #\T #\Y #\U #\I ; #x10 - #\O #\P #\{ #\} #\newline nil #\A #\S ; #x18 - - #\D #\F #\G #\H #\J #\K #\L #\: ; #x20 - #\" #\~ nil #\| #\Z #\X #\C #\V ; #x28 - #\B #\N #\M #\< #\> #\? nil nil ; #x30 - nil nil nil nil nil nil nil nil ; #x38 - nil nil nil nil nil :pause nil nil)) ; #x40 - -(defparameter *scan-codes* - #(#\null #\escape #\1 #\2 #\3 #\4 #\5 #\6 ; #x00 - #\7 #\8 #\9 #\0 #\- #\= #\backspace #\tab ; #x08 - #\q #\w #\e #\r #\t #\y #\u #\i ; #x10 - #\o #\p #\[ #\] #\newline :ctrl-left #\a #\s ; #x18 - - #\d #\f #\g #\h #\j #\k #\l #\; ; #x20 - #\' #\` :shift-left #\\ #\z #\x #\c #\v ; #x28 - #\b #\n #\m #\, #\. #\/ :shift-right #\escape ; #x30 - :alt-left #\space :caps-lock :f1 :f2 :f3 :f4 :f5 ; #x38 - - :f6 :f7 :f8 :f9 :f10 :break :scroll-lock nil ; #x40 - nil nil nil nil nil nil nil nil ; #x48 - nil :kp-ins nil :kp-del nil nil nil :f11 ; #x50 - :f12 nil nil nil nil nil nil nil ; #x58 + +(defvar *kbd-layouts* + (let ((layout (make-hash-table))) + (setf + (gethash :qwerty layout) + #(#(#\null #\escape #\1 #\2 #\3 #\4 #\5 #\6 ; #x00 + #\7 #\8 #\9 #\0 #\- #\= #\backspace #\tab ; #x08 + #\q #\w #\e #\r #\t #\y #\u #\i ; #x10 + #\o #\p #\[ #\] #\newline :ctrl-left #\a #\s ; #x18 + + #\d #\f #\g #\h #\j #\k #\l #\; ; #x20 + #\' #\` :shift-left #\\ #\z #\x #\c #\v ; #x28 + #\b #\n #\m #\, #\. #\/ :shift-right #\escape ; #x30 + :alt-left #\space :caps-lock :f1 :f2 :f3 :f4 :f5 ; #x38 + + :f6 :f7 :f8 :f9 :f10 :break :scroll-lock nil ; #x40 + nil nil nil nil nil nil nil nil ; #x48 + nil :kp-ins nil :kp-del nil nil nil :f11 ; #x50 + :f12 nil nil nil nil nil nil nil ; #x58 - nil nil nil nil nil nil nil nil ; #x60 - nil nil nil nil nil nil nil nil ; #x68 - nil nil nil nil nil nil nil nil ; #x70 - nil nil nil nil nil nil nil nil ; #x78 - - nil nil nil nil nil nil nil nil ; #x80 - nil nil nil nil nil nil nil nil ; #x88 - nil nil nil nil :ctrl-right nil nil nil ; #x90 - nil nil nil nil nil :ctrl-right nil nil ; #x98 + nil nil nil nil nil nil nil nil ; #x60 + nil nil nil nil nil nil nil nil ; #x68 + nil nil nil nil nil nil nil nil ; #x70 + nil nil nil nil nil nil nil nil ; #x78 + + nil nil nil nil nil nil nil nil ; #x80 + nil nil nil nil nil nil nil nil ; #x88 + nil nil nil nil :ctrl-right nil nil nil ; #x90 + nil nil nil nil nil :ctrl-right nil nil ; #x98 - nil nil nil nil nil nil nil nil ; #xa0 - nil nil nil nil nil nil nil nil ; #xa8 - nil nil nil nil nil nil nil nil ; #xb0 - :alt-right nil nil nil nil nil nil nil ; #xb8 - - nil nil nil nil nil nil nil :home ; #xc0 - :up :page-up nil :left nil :right nil :end ; #xc8 - :down :page-down :insert nil #+ignore #\delete nil nil nil nil nil ; #xd0 - :alt-right nil nil nil :win :menu nil nil)) ; #xd8 + nil nil nil nil nil nil nil nil ; #xa0 + nil nil nil nil nil nil nil nil ; #xa8 + nil nil nil nil nil nil nil nil ; #xb0 + :alt-right nil nil nil nil nil nil nil ; #xb8 + + nil nil nil nil nil nil nil :home ; #xc0 + :up :page-up nil :left nil :right nil :end ; #xc8 + :down :page-down :insert nil #+ignore #\delete nil nil nil nil nil ; #xd0 + :alt-right nil nil nil :win :menu nil nil) ; #x40 + #(#\null nil #\! #\@ #\# #\$ #\% #\^ ; #x00 + #\& #\* #\( #\) #\_ #\+ nil nil ; #x08 + #\Q #\W #\E #\R #\T #\Y #\U #\I ; #x10 + #\O #\P #\{ #\} #\newline nil #\A #\S ; #x18 + + #\D #\F #\G #\H #\J #\K #\L #\: ; #x20 + #\" #\~ nil #\| #\Z #\X #\C #\V ; #x28 + #\B #\N #\M #\< #\> #\? nil nil ; #x30 + nil nil nil nil nil nil nil nil ; #x38 + nil nil nil nil nil :pause nil nil)) ; #xd8 + (gethash :dvorak layout) + #(#(#\null #\escape #\1 #\2 #\3 #\4 #\5 #\6 ; #x00 + #\7 #\8 #\9 #\0 #\[ #\] #\backspace #\tab ; #x08 + #\' #\, #\. #\p #\y #\f #\g #\c ; #x10 + #\r #\l #\/ #\= #\newline :ctrl-left #\a #\o ; #x18 + + #\e #\u #\i #\d #\h #\t #\n #\s ; #x20 + #\- #\` :shift-left #\\ #\; #\q #\j #\k ; #x28 + #\x #\b #\m #\w #\v #\z :shift-right #\escape ; #x30 + :alt-left #\space :caps-lock :f1 :f2 :f3 :f4 :f5 ; #x38 + + :f6 :f7 :f8 :f9 :f10 :break :scroll-lock nil ; #x40 + nil nil nil nil nil nil nil nil ; #x48 + nil :kp-ins nil :kp-del nil nil nil :f11 ; #x50 + :f12 nil nil nil nil nil nil nil ; #x58 + + nil nil nil nil nil nil nil nil ; #x60 + nil nil nil nil nil nil nil nil ; #x68 + nil nil nil nil nil nil nil nil ; #x70 + nil nil nil nil nil nil nil nil ; #x78 + + nil nil nil nil nil nil nil nil ; #x80 + nil nil nil nil nil nil nil nil ; #x88 + nil nil nil nil :ctrl-right nil nil nil ; #x90 + nil nil nil nil nil :ctrl-right nil nil ; #x98 + + nil nil nil nil nil nil nil nil ; #xa0 + nil nil nil nil nil nil nil nil ; #xa8 + nil nil nil nil nil nil nil nil ; #xb0 + :alt-right nil nil nil nil nil nil nil ; #xb8 + + nil nil nil nil nil nil nil :home ; #xc0 + :up :page-up nil :left nil :right nil :end ; #xc8 + :down :page-down :insert nil #+ignore #\delete nil nil nil nil nil ; #xd0 + :alt-right nil nil nil :win :menu nil nil) ; #x40 + #(#\null nil #\! #\@ #\# #\$ #\% #\^ ; #x00 + #\& #\* #\( #\) #\{ #\} nil nil ; #x08 + #\" #\< #\> #\P #\Y #\F #\G #\C ; #x10 + #\R #\L #\? #\+ #\newline nil #\A #\O ; #x18 + + #\E #\U #\I #\D #\H #\T #\N #\S ; #x20 + #\_ #\~ nil #\| #\: #\Q #\J #\K ; #x28 + #\X #\B #\M #\W #\V #\Z nil nil ; #x30 + nil nil nil nil nil nil nil nil ; #x38 + nil nil nil nil nil :pause nil nil)) ; #xd8 + ) + layout) + "All defined keyboard layouts.") + +;; default to qwerty +(defparameter *scan-codes* (aref (gethash :qwerty *kbd-layouts*) 0)) +(defparameter *scan-codes-shift* (aref (gethash :qwerty *kbd-layouts*) 1)) + +(defun set-kbd-layout (layout-id) + "Set the keyboard layout to one provided in *kbd-layouts*." + (let* ((layout (gethash layout-id *kbd-layouts*)) + (normal (aref layout 0)) + (shifted (aref layout 1))) + (setf *scan-codes* (copy-seq normal) + *scan-codes-shift* (copy-seq shifted)))) (defun lowlevel-event-p () (logbitp 0 (io-port #x64 :unsigned-byte8))) @@ -149,10 +212,10 @@ (defun decode-key-code (key-code qualifiers) (or (and (logbitp +qualifier-shift+ qualifiers) - (< -1 key-code (length *scan-codes-shift*)) - (aref *scan-codes-shift* key-code)) + (< -1 key-code (length *scan-codes-shift*)) + (aref *scan-codes-shift* key-code)) (and (< -1 key-code (length *scan-codes*)) - (aref *scan-codes* key-code)))) + (aref *scan-codes* key-code)))) ;;; (< -1 key-code (length *scan-codes*))) (defun get-key () From mbealby at gmail.com Thu Mar 8 18:09:51 2007 From: mbealby at gmail.com (M Bealby) Date: Thu, 08 Mar 2007 18:09:51 +0000 (GMT) Subject: [movitz-devel] Simple VGA Graphics. In-Reply-To: <792c60620703070714j621f7610x15c52f48be9b8f6f@mail.gmail.com> References: <20070307.083404.41633730.mbealby@gmail.com> <792c60620703070714j621f7610x15c52f48be9b8f6f@mail.gmail.com> Message-ID: <20070308.180951.30189978.mbealby@gmail.com> From: "Vikas N Kumar" Subject: Re: [movitz-devel] Simple VGA Graphics. Date: Wed, 7 Mar 2007 10:14:23 -0500 > This is great. > I have forever wanted to learn how to do this. > Do you have any starting points for learning ? > > Thanks > Vikas > Thanks. :) One of my main resources was Google actually. Try a search for "vga programming" and a number of tutorials will turn up. One that I found useful (however, avoid the sections about using BIOS calls) was: http://www.geocities.com/SiliconValley/Park/8933/vga.html VGA programming is very rewarding due to its graphical nature, so if you are interested I would urge you to try it. I'm just fleshing out some routines (line, circle etc.) so perhaps someone could make some simple vector graphics demos (or even games!). I hope to have the vector routines (along with some simple compression on that image) and a diff made up by the end of the weekend. Thanks, Martin From mbealby at gmail.com Fri Mar 9 18:20:40 2007 From: mbealby at gmail.com (M Bealby) Date: Fri, 09 Mar 2007 18:20:40 +0000 (GMT) Subject: [movitz-devel] Movitz VGA Source Message-ID: <20070309.182040.71089468.mbealby@gmail.com> I am going to be busy this weekend and I really wanted to put something out there for people to play with. Hence I've uploaded a diff of the work so far. The diff is quite large because the test splash image is uncompressed, maybe someone could hack simple run length encoding in over the weekend. However, I did take the comments about the size into consideration -- I bzipped the diff! :) It also contains simple vector drawing functions. I've been in contact with Frederic Jolliton regarding his cl-vectors[2] library and it seems possible to port. However, it might take some time, so I ported across simpler routines from Cyrus Harmons ch-image[3] for the time being. Hope people have fun with this and build upon it. If you get some non-blocking keyboard reads going and a little loop you could probably write a little asteriods game. All the best, Martin http://ccgi.bealbywm.plus.com/blog/ [1] http://www.bealbywm.plus.com/movitz/vga-0.1.diff.bz2 [2] http://projects.tuxee.net/cl-vectors/ [3] http://cyrusharmon.org/cl/projects/ch-image/ From paul.lathrop at gmail.com Fri Mar 9 18:40:08 2007 From: paul.lathrop at gmail.com (Paul Lathrop) Date: Fri, 9 Mar 2007 10:40:08 -0800 Subject: [movitz-devel] Getting Started Message-ID: Hello All, Movitz is an amazing project, with very exciting potential. I'm interested in learning more about Movitz and OS development in general, and I was wondering if anyone would be willing to give me a push in the right direction. I think the best way to get started would be to help implement some of the missing pieces of Movitz itself - several are mentioned in the docs, but the docs also seem slightly outdated. So, what I'm looking for is a small chunk of functionality that would be good to have in Movitz that should be achievable by a beginner in the 'bare-metal development' world. Also, what tools do you use to develop for Movitz? What is your workflow like? I was able to get Movitz up and running on Parallels, and I'm familiar with Emacs and Slime. I see a movitz-mode.el in the source code which seems intriguing, but I am finidng it difficult to understand the development cycle... Any pointers on these subjects would be much appreciated! Regards, Paul From sabetts at vcn.bc.ca Fri Mar 9 20:24:38 2007 From: sabetts at vcn.bc.ca (Shawn Betts) Date: Fri, 9 Mar 2007 12:24:38 -0800 Subject: [movitz-devel] Movitz VGA Source In-Reply-To: <20070309.182040.71089468.mbealby@gmail.com> References: <20070309.182040.71089468.mbealby@gmail.com> Message-ID: <62e3e0b30703091224l7728e252y869808f7c221cd56@mail.gmail.com> Hi Martin, Your VGA patch inspired me to hack together an asteroids game. An image is at: www.emmett.ca/~sabetts/asteroids.img Here's the current source: www.emmett.ca/~sabetts/asteroids.lisp It works with clx or movitz. You'll notice, though that it uses keyboard stuff that isn't in movitz. Because the key handling in movitz is not ideal for games, I took it upon myself to improve it and uh ya. anyway asteroids. work-in-progress. When I finish this keyboard hacking I'll post something more polished :). In the meantime, know that your hack is being interactively appreciated :). Also, it flickers a lot, as you will notice. Will you be adding double buffer support to your library? -Shawn On 3/9/07, M Bealby wrote: > > I am going to be busy this weekend and I really wanted to put something > out > there for people to play with. Hence I've uploaded a diff of the work so > far. > > The diff is quite large because the test splash image is uncompressed, > maybe > someone could hack simple run length encoding in over the > weekend. However, I > did take the comments about the size into consideration -- I bzipped the > diff! > :) > > It also contains simple vector drawing functions. I've been in contact > with > Frederic Jolliton regarding his cl-vectors[2] library and it seems > possible to > port. However, it might take some time, so I ported across simpler > routines > from Cyrus Harmons ch-image[3] for the time being. > > Hope people have fun with this and build upon it. If you get some > non-blocking > keyboard reads going and a little loop you could probably write a little > asteriods game. > > All the best, > Martin > http://ccgi.bealbywm.plus.com/blog/ > > > [1] http://www.bealbywm.plus.com/movitz/vga-0.1.diff.bz2 > [2] http://projects.tuxee.net/cl-vectors/ > [3] http://cyrusharmon.org/cl/projects/ch-image/ > _______________________________________________ > movitz-devel site list > movitz-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/movitz-devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ffjeld at common-lisp.net Tue Mar 13 07:42:56 2007 From: ffjeld at common-lisp.net (Frode Vatvedt Fjeld) Date: 13 Mar 2007 08:42:56 +0100 Subject: [movitz-devel] Re: Getting Started References: Message-ID: <2hr6rty4fz.fsf@vserver.cs.uit.no> "Paul Lathrop" writes: > [..] Any pointers on these subjects would be much appreciated! I'll try to write something on the wiki soon. As soon as I can find the time, that is. -- Frode Vatvedt Fjeld From ffjeld at common-lisp.net Tue Mar 13 21:53:05 2007 From: ffjeld at common-lisp.net (Frode Vatvedt Fjeld) Date: 13 Mar 2007 22:53:05 +0100 Subject: [movitz-devel] Re: Movitz VGA Source References: <20070309.182040.71089468.mbealby@gmail.com> Message-ID: <2hmz2gyfni.fsf@vserver.cs.uit.no> M Bealby writes: > I am going to be busy this weekend and I really wanted to put > something out there for people to play with. Hence I've uploaded a > diff of the work so far. Thanks! I checked it in just now. I just changed g-show-splash slightly to more reliably reset text-mode afterwards. -- Frode Vatvedt Fjeld From ffjeld at common-lisp.net Tue Mar 13 22:47:10 2007 From: ffjeld at common-lisp.net (Frode Vatvedt Fjeld) Date: 13 Mar 2007 23:47:10 +0100 Subject: [movitz-devel] Re: Getting Started References: Message-ID: <2hird4yd5d.fsf@vserver.cs.uit.no> "Paul Lathrop" writes: > Also, what tools do you use to develop for Movitz? What is your > workflow like? I was able to get Movitz up and running on Parallels, > and I'm familiar with Emacs and Slime. I see a movitz-mode.el in the > source code which seems intriguing, but I am finidng it difficult to > understand the development cycle... Here's the beginnings of a piece of the puzzle: http://trac.common-lisp.net/movitz/wiki/MovitzAndSlime Feedback (or edits, this is a Wiki after all..) are welcome, of course. -- Frode Vatvedt Fjeld From paul.lathrop at gmail.com Wed Mar 14 00:27:36 2007 From: paul.lathrop at gmail.com (Paul Lathrop) Date: Tue, 13 Mar 2007 17:27:36 -0700 Subject: [movitz-devel] Re: Getting Started In-Reply-To: <2hird4yd5d.fsf@vserver.cs.uit.no> References: <2hird4yd5d.fsf@vserver.cs.uit.no> Message-ID: On 13 Mar 2007 23:47:10 +0100, Frode Vatvedt Fjeld wrote: > Here's the beginnings of a piece of the puzzle: > http://trac.common-lisp.net/movitz/wiki/MovitzAndSlime > > Feedback (or edits, this is a Wiki after all..) are welcome, of > course. Many thanks! I'll be sure to add more as I learn. --Paul From ffjeld at common-lisp.net Wed Mar 14 20:40:24 2007 From: ffjeld at common-lisp.net (Frode Vatvedt Fjeld) Date: 14 Mar 2007 21:40:24 +0100 Subject: [movitz-devel] Re: keyboard layouts References: Message-ID: <2habyfy2x3.fsf@vserver.cs.uit.no> sabetts at andrew.cmu.edu writes: > I cleaned up my dvorak hack from ages ago. It rearranges some stuff > and creates an exported function, x86-pc.keyboard:set-kbd-layout. call > it with :dvorak or :qwerty to switch to that layout. default is > qwerty, of course. So, now you can eval at the repl: > > (x86-pc.keyboard:set-kbd-layout :dvorak) Thanks! I checked this in just now. I just renamed *kbd-layouts* to *layouts* and changed it to be an assoc list rather than hash-table. -- Frode Vatvedt Fjeld From ffj at common-lisp.net Thu Mar 15 20:58:01 2007 From: ffj at common-lisp.net (ffj at common-lisp.net) Date: 15 Mar 2007 21:58:01 +0100 Subject: [movitz-devel] The Bi-Annual Movitz Newsletter Message-ID: <2hveh2w7fq.fsf@vserver.cs.uit.no> Here's a status report on Movitz: * First of all, activity has picked up a bit the last month or so. So this is a great time to jump on the bandwagon :-) * The Wiki is open for business: http://trac.common-lisp.net/movitz/wiki * The IRC channel is #movitz on irc.freenode.net. * I have more or less migrated my primary development environment to SBCL and SLIME, and so I made the effort to polish the Movitz tools for this setup. See http://trac.common-lisp.net/movitz/wiki/MovitzAndSlime * Some recent developments are: Much better &key argument parsing in (compiled) functions, improved floppy bootloader, VGA graphics (http://ccgi.bealbywm.plus.com/blog/2007/03/07/vga-in-movitz/), and improved keyboard driver by Shawn Betts. Reportedly, Mr. Betts has also successfully implemented preemptive thread switching. * My own development focus currently is to invent a reasonable mechanism for waiting/blocking. The current busy-looping nature of movitz kernels is clearly the biggest wart on the system. * While I have nothing concrete to show for it, I have been thinking that adding/porting Movitz to 64-bit x86 would be very interesting. (Not to mention there is a window of opportunity now while our main competitor Microsoft is struggling to port their legacy systems.) That's it for now, happy hacking to all, -- Frode Vatvedt Fjeld From tesullivan at knology.net Sat Mar 17 17:39:10 2007 From: tesullivan at knology.net (Terence Sullivan) Date: Sat, 17 Mar 2007 12:39:10 -0500 Subject: [movitz-devel] Re: The Bi-Annual Movitz Newsletter Message-ID: <45FC27BE.3080907@knology.net> Hello, First, congratulations on the progress that you have been making. I hope that as I improve my Lisp skills I will eventually be able to join you and contribute to the effort. In the mean time, I noticed this portion of your Bi-Annual Movitz Newsletter: > My own development focus currently is to invent a reasonable > mechanism for waiting/blocking. The current busy-looping nature of > movitz kernels is clearly the biggest wart on the system. and thought I might be able to give you some help in the form of an idea. In my poking around the internet, I ran across something a while ago called an Exokernel at MIT. http://pdos.csail.mit.edu/exo/ Now, I'm not advocating that you use it in it's current form, rather, I would just offer it as a possible model of how you might modify your kernel to solve your "busy-looping" problem. Keep up the good work. Terry Sullivan From ffjeld at common-lisp.net Sat Mar 17 18:07:31 2007 From: ffjeld at common-lisp.net (Frode Vatvedt Fjeld) Date: 17 Mar 2007 19:07:31 +0100 Subject: [movitz-devel] Re: The Bi-Annual Movitz Newsletter References: <45FC27BE.3080907@knology.net> Message-ID: <2h1wjnwxp8.fsf@vserver.cs.uit.no> Hello and welcome, Terry, > [..] In my poking around the internet, I ran across something a > while ago called an Exokernel at MIT. > http://pdos.csail.mit.edu/exo/ > > Now, I'm not advocating that you use it in it's current form, > rather, I would just offer it as a possible model of how you might > modify your kernel to solve your "busy-looping" problem. I do remember we studied Exokernel at school. The slogan "exterminate all abstractions!" or something to that effect springs to mind. The idea I believe is that an Exokernel should do just what is absolutely necessary to provide protection (aka. "safe multiplexing" between processes/applications/subsystems), and nothing in the way of abstraction ("libraries" you might say). I have to confess I don't immediately see how this relates to the "busy-looping problem". Maybe you can say something more about what you had in mind? Thinking about it now, on a conceptual level it seems to me that Movitz is almost the antithesis to Exokernel, as Movitz is pretty much all abstractions an no protection.. :-) Regards, -- Frode Vatvedt Fjeld From tesullivan at knology.net Sun Mar 18 00:51:24 2007 From: tesullivan at knology.net (Terence Sullivan) Date: Sat, 17 Mar 2007 19:51:24 -0500 Subject: [movitz-devel] Re: The Bi-Annual Movitz Newsletter Message-ID: <45FC8D0C.50506@knology.net> > > I do remember we studied Exokernel at school. The slogan "exterminate > all abstractions!" or something to that effect springs to mind. The > idea I believe is that an Exokernel should do just what is absolutely > necessary to provide protection (aka. "safe multiplexing" between > processes/applications/subsystems), and nothing in the way of > abstraction ("libraries" you might say). > > I have to confess I don't immediately see how this relates to the > "busy-looping problem". Maybe you can say something more about what > you had in mind? > > Thinking about it now, on a conceptual level it seems to me that > Movitz is almost the antithesis to Exokernel, as Movitz is pretty much > all abstractions an no protection.. :-) > > Regards, > -- > Frode Vatvedt Fjeld Well, the papers that I'd read led me to believe that the Exokernel they created was almost entirely event driven and that there really wasn't a main OS processing loop in it. My impression of what you were referring to as your "busy loop" problem was that it had something to do with this main OS processing loop. Hence the connection. My interpretations may be in error on either topic since I haven't done much more than get acquainted with them. But it sparked a memory that I thought might lead you to an answer to your problem. Terry From ffjeld at common-lisp.net Wed Mar 21 18:24:36 2007 From: ffjeld at common-lisp.net (Frode Vatvedt Fjeld) Date: 21 Mar 2007 19:24:36 +0100 Subject: [movitz-devel] Sets of constants Message-ID: <2hps72fo9n.fsf@vserver.cs.uit.no> In many circumstances there's a need to define sets of constants. For example, most hardware drivers wants to define names of hardware registers and values. My first (and so far only) attempt at a mechanism for this, is in losp/lib/named-integers.lisp. This scheme doesn't work very well, and I want to replace it. I'd like to hear if anyone has opinions on this. My own idea so far is to define for each set of constants a pair of functions, where the first function maps names (symbols, or keywords if the definition is supposed to be used from outside the package) to values, and the second maps values to names. Compile-time expansion of constant names will be provided. Here's a scetch in terms of definition and expansion: (define-constants ip-protocol () (1 icmp) (6 tcp) (17 udp)) ===>>> (progn (defun ip-protocol (name) (ecase name (icmp 1) (tcp 2) (udp 17))) (defun ip-protocol-name (value) (case value (1 'icmp) (2 'tcp) (17 'udp)))) Any other ideas, concerns, or experiences? -- Frode Vatvedt Fjeld From christian at defun.dk Thu Mar 22 20:16:07 2007 From: christian at defun.dk (Christian Lynbech) Date: Thu, 22 Mar 2007 21:16:07 +0100 Subject: [movitz-devel] ILC 2007 In-Reply-To: <2hps72fo9n.fsf@vserver.cs.uit.no> (Frode Vatvedt Fjeld's message of "21 Mar 2007 19:24:36 +0100") References: <2hps72fo9n.fsf@vserver.cs.uit.no> Message-ID: Is anybody here from the movitz subculture going to the ILC? ------------------------+----------------------------------------------------- Christian Lynbech | christian #\@ defun #\. dk ------------------------+----------------------------------------------------- Hit the philistines three times over the head with the Elisp reference manual. - petonic at hal.com (Michael A. Petonic) From luismbo at gmail.com Sat Mar 24 16:18:20 2007 From: luismbo at gmail.com (Luis Oliveira) Date: Sat, 24 Mar 2007 16:18:20 +0000 Subject: [movitz-devel] Re: Sets of constants References: <2hps72fo9n.fsf@vserver.cs.uit.no> Message-ID: Frode Vatvedt Fjeld writes: > My own idea so far is to define for each set of constants a pair of > functions, where the first function maps names (symbols, or keywords > if the definition is supposed to be used from outside the package) to > values, and the second maps values to names. Compile-time expansion of > constant names will be provided. [...] > Any other ideas, concerns, or experiences? FWIW, we have a similar need in CFFI for enums and bitfields and we use two operators (integer to symbol and and vice-versa) that take the type as their first argument. In the case of bitfields an integer usually maps to more than one symbol, of course. Why not plain old +constants+ with defconstant? I'm not suggesting that's a better idea, just curious. -- Lu?s Oliveira http://student.dei.uc.pt/~lmoliv/ From ffjeld at common-lisp.net Mon Mar 26 21:43:41 2007 From: ffjeld at common-lisp.net (Frode Vatvedt Fjeld) Date: 26 Mar 2007 23:43:41 +0200 Subject: [movitz-devel] x86-pc::*text-output-port* and bochs Message-ID: <2h7it3fzoy.fsf@vserver.cs.uit.no> I just added a rather neat hack to textmode.lisp. The bochs PC emulator has a feature that can be enabled where bytes written to io-port #xe9 is sent to the console (you may need to recompile bohcs in order to enable this, I'm not sure). Now, doing (setf x86-pc::*text-output-port* #xe9) from inside bochs should cause everything to be logged to the console. Similarly, it should be quite easy to set up a primitive stream/function that dumps to #xe9, and bind e.g. *trace-output* to it, which I should think might be useful. -- Frode Vatvedt Fjeld From ffjeld at common-lisp.net Tue Mar 27 16:49:06 2007 From: ffjeld at common-lisp.net (Frode Vatvedt Fjeld) Date: 27 Mar 2007 18:49:06 +0200 Subject: [movitz-devel] Re: Sets of constants References: <2hps72fo9n.fsf@vserver.cs.uit.no> Message-ID: <2h1wjafx8d.fsf@vserver.cs.uit.no> Luis Oliveira writes: > Why not plain old +constants+ with defconstant? I'm not suggesting > that's a better idea, just curious. One problem is that you can't export the symbols so easily. And there's no obvious way to do reverse mapping. -- Frode Vatvedt Fjeld From pbrochard at common-lisp.net Sat Mar 31 20:57:03 2007 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 31 Mar 2007 22:57:03 +0200 Subject: [movitz-devel] French (azerty) keyboard layout Message-ID: <87fy7l9lnk.fsf@grigri.elcforest> Hi, Attached is a french keyboard layout for movitz. Like qwerty or dvorak but for french people. Hope that can be useful. Philippe -- Philippe Brochard http://hocwp.free.fr -=-= http://www.gnu.org/home.fr.html =-=- -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: azerty-layout.diff URL: