Update of /project/movitz/cvsroot/movitz/losp In directory common-lisp.net:/tmp/cvs-serv7945
Modified Files: los0.lisp Log Message: *** empty log message *** Date: Wed Mar 9 08:24:55 2005 Author: ffjeld
Index: movitz/losp/los0.lisp diff -u movitz/losp/los0.lisp:1.36 movitz/losp/los0.lisp:1.37 --- movitz/losp/los0.lisp:1.36 Tue Jan 4 21:24:00 2005 +++ movitz/losp/los0.lisp Wed Mar 9 08:24:54 2005 @@ -9,7 +9,7 @@ ;;;; Created at: Fri Dec 1 18:08:32 2000 ;;;; Distribution: See the accompanying file COPYING. ;;;; -;;;; $Id: los0.lisp,v 1.36 2005/01/04 20:24:00 ffjeld Exp $ +;;;; $Id: los0.lisp,v 1.37 2005/03/09 07:24:54 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -20,6 +20,7 @@ (require :x86-pc/io-space) (require :x86-pc/ne2k) (require :x86-pc/floppy) +(require :x86-pc/serial)
(require :lib/readline) (require :lib/toplevel) @@ -40,7 +41,7 @@ ;; #:muerte.ip6 #:muerte.ip4 #:muerte.mop - #+ignore muerte.x86-pc.serial)) + #:muerte.x86-pc.serial))
(require :los0-gc) ; Must come after defpackage.
@@ -1011,7 +1012,8 @@ (if (not (and (boundp '*debugger-condition*) *debugger-condition*)) (fresh-line) - (let ((condition *debugger-condition*)) + (let ((condition *debugger-condition*) + (*print-safely* t)) (cond ((consp condition) (fresh-line) @@ -1141,7 +1143,7 @@ (defun random (limit) (etypecase limit (fixnum - (rem (read-time-stamp-counter) limit)) + (mod (read-time-stamp-counter) limit)) (muerte::positive-bignum (let ((x (muerte::copy-bignum limit))) (dotimes (i (1- (muerte::%bignum-bigits x))) @@ -1210,8 +1212,9 @@ (assert (string= fasit x) () "Failed tesT. Fasit: ~S, X: ~S" fasit x)))))
-(defun test-clc (&optional timeout) - (test-timer timeout) +(defun test-clc (&optional timeout no-timer) + (unless no-timer + (test-timer timeout)) (loop (funcall (find-symbol (string :test-clc) :clc))))
@@ -1231,7 +1234,7 @@ ;;; (vector-push funobj ts) ;;; (vector-push offset ts) ;;; (vector-push code-vector ts)))) - (muerte::cli) +;;; (muerte::cli) (pic8259-end-of-interrupt 0) (when (eql #\esc (muerte.x86-pc.keyboard:poll-char)) (break "Test-timer keyboard break.")) @@ -1246,12 +1249,11 @@ (when (eq (with-inline-assembly (:returns :eax) (:movl :esi :eax)) (stack-frame-funobj nil frame)) (error "Double interrupt."))) - #+ignore - (dolist (range muerte::%memory-map-roots%) - (map-header-vals (lambda (x type) - (declare (ignore type)) - x) - (car range) (cdr range))) +;;; (dolist (range muerte::%memory-map-roots%) +;;; (map-header-vals (lambda (x type) +;;; (declare (ignore type)) +;;; x) +;;; (car range) (cdr range))) (map-stack-vector (lambda (x foo) (declare (ignore foo)) x) @@ -1261,11 +1263,12 @@ (:compile-form (:result-mode :ecx) muerte.x86-pc::*screen*) (:shrl 2 :ecx) ((:gs-override) :movb #x20 (:ecx 159))) - (setf *timer-prevstack* *timer-stack* - *timer-stack* (muerte::copy-current-control-stack)) + #+ignore (setf *timer-prevstack* *timer-stack* + *timer-stack* (muerte::copy-current-control-stack)) (setf (pit8253-timer-mode 0) +pit8253-mode-single-timeout+ (pit8253-timer-count 0) (or timeout (+ base (random variation)))) - (muerte::sti))) +;;; (muerte::sti) + )) (with-inline-assembly (:returns :nothing) (:compile-form (:result-mode :ecx) muerte.x86-pc::*screen*) (:shrl 2 :ecx) @@ -1274,24 +1277,10 @@ (pit8253-timer-count 0) (or timeout (+ base (random variation)))) (setf (pic8259-irq-mask) #xfffe) (pic8259-end-of-interrupt 0) - (with-inline-assembly (:returns :nothing) (:sti)) - ;; (dotimes (i 100000)) - #+ignore - (with-inline-assembly (:returns :nothing) - (:compile-two-forms (:ebx :edx) - (read-time-stamp-counter) - (read-time-stamp-counter)) - (:movl :eax (#x1000000)) - (:movl :ebx (#x1000004)) - (:movl :ecx (#x1000008)) - (:movl :edx (#x100000c)) - (:movl :ebp (#x1000010)) - (:movl :esp (#x1000014)) - (:movl :esi (#x1000018)) - (:halt) - (:cli) - (:halt) - )) + (with-inline-assembly (:returns :nothing) (:sti))) + +(defun wetweg (x) + (memref-int (memref x 2 :type :unsigned-byte32) :physicalp nil :type :unsigned-byte8))
(defun test-throwing (&optional (x #xffff)) (when x @@ -1338,7 +1327,7 @@ (:jno 'no-overflow) (:movl 4 :eax) no-overflow)) - + (defun genesis () ;; (install-shallow-binding) (let ((extended-memsize 0)) @@ -1352,10 +1341,11 @@ (idt-init) (install-los0-consing :kb-size 500) #+ignore - (install-los0-consing :kb-size (max 100 (truncate (- extended-memsize 2048) 2)))) + (install-los0-consing :kb-size (max 50 (truncate (- extended-memsize 2048) 2))))
(setf *debugger-function* #'los0-debugger) (clos-bootstrap) + (install-shallow-binding) (let ((*repl-readline-context* (make-readline-context :history-size 16)) #+ignore (*backtrace-stack-frame-barrier* (stack-frame-uplink (current-stack-frame))) #+ignore (*error-no-condition-for-debugger* t) @@ -1385,6 +1375,10 @@ *standard-input* s *terminal-io* s *debug-io* s))) +;;; (ignore-errors +;;; (setf (symbol-function 'write-char) +;;; (muerte.x86-pc.serial::make-serial-write-char :baudrate 38400)) +;;; (format t "~&Installed serial-port write-char.")) (let ((* nil) (** nil) (*** nil) (/ nil) (// nil) (/// nil) (+ nil) (++ nil) (+++ nil) @@ -1409,41 +1403,6 @@ (let ((string (muerte.readline:contextual-readline *repl-readline-context*))) (simple-read-from-string string eof-error-p eof-value)))
-(defun handle-warning (condition) - (format t "Handle-warning: ~S" condition) - (throw :debugger nil)) - -(defun zoo (x) - (cond - (x (warn "foo")) - (t nil)) - nil) - -#+ignore -(defun progntest () - (prog () - (unwind-protect - (progn - (print 'x) - (go mumbo) - (error "bar")) - (print 'y)) - mumbo)) - -#+ignore -(defun test-restart (x) - (with-simple-restart (test "It's just a test, so ignore ~S." x) - (check-type x symbol))) - -#+ignore -(defun condtest () - (format t "You have two attempts..") - (handler-bind - ((error #'(lambda (c) (print 'x) (warn "An error occurred.."))) - (warning #'handle-warning) - (t #'invoke-debugger)) - (read-eval-print) - (read-eval-print)))
#+ignore (defun ztstring (physical-address)