[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