; Definitions for use in GeekOS boot code
; Copyright (c) 2001, David H. Hovemeyer <daveho@cs.umd.edu>
-; $Revision: 1.3 $
+; $Revision: 1.4 $
; This is free software. You are permitted to use,
; redistribute, and modify it as specified in the file "COPYING".
; BIOS loads the boot sector at offset 0 in this segment
BOOTSEG equ 0x07C0
-
+
; We'll move the boot sector up to higher memory.
; Note that the "ISA hole" begins at segment 0xA000 == 640K.
INITSEG equ 0x9000
;; Note that this segment must not colide with where the VMM kernel
;; is initially loaded. At this point, we just place it in the last
;; 64K of RAM available before the ISA hole and hope for the best
-VMSEG equ 0x9000 ;
+VMSEG equ 0x8000 ;
; Size of PFAT boot record.
; Keep up to date with <geekos/pfat.h>.
; Boot sector for GeekOS
; Copyright (c) 2001,2004 David H. Hovemeyer <daveho@cs.umd.edu>
; Copyright (c) 2003, Jeffrey K. Hollingsworth <hollings@cs.umd.edu>
-; $Revision: 1.3 $
+; $Revision: 1.4 $
; This is free software. You are permitted to use,
; redistribute, and modify it as specified in the file "COPYING".
mov ax, VMSEG ; ...to get base relative to VMSEG
push ax ; 2nd param to ReadSector (seg base)
- mov dx, ax
- call PrintHex
- call PrintNL
+; mov dx, ax ;
+; call PrintHex
+; call PrintNL
mov ax, 2000h ; Always write at the start of the segment
push ax ; 3rd parameter
call ReadSector
add sp, 6 ; clear 3 word params
+ push 9000h
+ pop es
+ mov dx, word [es:2000] ;
+ call PrintHex
+ call PrintNL
+
+
; execute bios call
mov si, bootsect_gdt
mov ax, 0x8700 ;
int 0x15
+ adc ax, 0
mov dx, ax
call PrintHex
mov bx, word [max_sector]
cmp word [sec_count], bx
+
+ jmp .out
jl .again2
+.out:
; Now we've loaded the setup code and the kernel image.
; Jump to setup code.
jmp SETUPSEG:0
* Copyright (c) 2001,2003,2004 David H. Hovemeyer <daveho@cs.umd.edu>
* Copyright (c) 2003, Jeffrey K. Hollingsworth <hollings@cs.umd.edu>
* Copyright (c) 2004, Iulian Neamtiu <neamtiu@cs.umd.edu>
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
* This is free software. You are permitted to use,
* redistribute, and modify it as specified in the file "COPYING".
ulong_t doIBuzz = 0;
- while(1);
+ while(1);
Init_BSS();
#endif
#if 1
- SerialPrint("Dumping GUEST KERNEL CODE (first 512 bytes @ 0x100000)\n");
- SerialMemDump((unsigned char *)0x100000, 512);
+ SerialPrint("Dumping GUEST KERNEL CODE (first 512*10 bytes @ 0x100000)\n");
+ SerialMemDump((unsigned char *)0x100000, 512*10);
#endif
while(1);