[movitz-cvs] CVS movitz

ffjeld ffjeld at common-lisp.net
Mon Mar 3 22:40:55 UTC 2008


Update of /project/movitz/cvsroot/movitz
In directory clnet:/tmp/cvs-serv26370

Modified Files:
	bootblock.lisp 
Log Message:
Make bootblock construction work: use 16-bit call targets in 16-bit mode (assembler problem).


--- /project/movitz/cvsroot/movitz/bootblock.lisp	2008/02/18 22:30:21	1.15
+++ /project/movitz/cvsroot/movitz/bootblock.lisp	2008/03/03 22:40:55	1.16
@@ -9,7 +9,7 @@
 ;;;; Created at:    Mon Oct  9 20:47:19 2000
 ;;;; Distribution:  See the accompanying file COPYING.
 ;;;;                
-;;;; $Id: bootblock.lisp,v 1.15 2008/02/18 22:30:21 ffjeld Exp $
+;;;; $Id: bootblock.lisp,v 1.16 2008/03/03 22:40:55 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -96,19 +96,19 @@
       (:movw #xfffc :bp)
       (:leaw (:bp ,(- +stack-frame-size+)) :sp)
       (:movw 'welcome :si)		; Print welcome message)
-      (:call 'print)
+      (:callw 'print)
        
       ;;
       ;; Enable the A20 gate
       ;;
-      (:call 'empty-8042)
+      (:callw 'empty-8042)
       (:movb #xd1 :al)
       (:outb :al #x64)
 
-      (:call 'empty-8042)
+      (:callw 'empty-8042)
       (:movb #xdf :al)
       (:outb :al #x60)
-      (:call 'empty-8042)
+      (:callw 'empty-8042)
 
       ;; Poll the floppy's sectors per track
 
@@ -140,7 +140,7 @@
       (:jg 'read-done)
   
       (:movw 'track-start-msg :si) ; Print '(' to screen for each track
-      (:call 'print)
+      (:callw 'print)
        
       (:movw (:bp ,+linear-sector+) :ax)
       (:movb (:bp ,+sectors-per-track+) :cl)
@@ -205,7 +205,7 @@
       (:jnz 'copy-loop)
 
       (:movw 'track-end-msg :si) ; Print ')' to screen after each track
-      (:call 'print)
+      (:callw 'print)
        
       (:jmp 'read-loop)
        
@@ -216,7 +216,7 @@
       (:jc 'motor-loop)
        
       (:movw 'entering :si)		; Print welcome message
-      (:call 'print)
+      (:callw 'print)
        
       ;; Read the cursor position into DH (row) and DL (column).
       (:movb 3 :ah)
@@ -261,7 +261,7 @@
       ;;
       read-error
       (:movw 'error :si)		; Print error message
-      (:call 'print)
+      (:callw 'print)
       halt-cpu
       (:halt)
       (:jmp 'halt-cpu)			; Infinite loop
@@ -270,11 +270,11 @@
       ;; Empty the 8042 Keyboard controller
       ;;
       empty-8042
-      (:call 'delay)
+      (:callw 'delay)
       (:inb #x64 :al)			; 8042 status port
       (:testb 1 :al)		     ; if ( no information available )
       (:jz 'no-output)			;   goto no_output
-      (:call 'delay)
+      (:callw 'delay)
       (:inb #x60 :al)			; read it
       (:jmp 'empty-8042)
       no-output
@@ -405,7 +405,8 @@
 	(asm:assemble-proglist (mkasm16-bios-bootloader image-size load-address skip-sectors)
 			       :start-pc #x7c00))
     (multiple-value-bind (protected-loader protected-symtab)
-	(let ((asm-x86:*position-independent-p* nil))
+	(let ((asm-x86:*position-independent-p* nil)
+	      (asm-x86:*cpu-mode* :32-bit))
 	  (asm:assemble-proglist (mkasm-loader image-size load-address call-address)
 				 :start-pc (cdr (or (assoc 'new-world bb-symtab)
 						    (error "No new-world defined in bios-loader.")))))




More information about the Movitz-cvs mailing list