Displaying text help
Posted: Tue Jun 07, 2005 11:00 pm
Here is the code:
[BITS 32]
global start
start:
mov esp, _sys_stack
jmp stublet
ALIGN 4
mboot:
MULTIBOOT_PAGE_ALIGN equ 1<<0
MULTIBOOT_MEMORY_INFO equ 1<<1
MULTIBOOT_AOUT_KLUDGE equ 1<<16
MULTIBOOT_HEADER_MAGIC equ 0x1BADB002
MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO | MULTIBOOT_AOUT_KLUDGE
MULTIBOOT_CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
EXTERN code, bss, end
dd MULTIBOOT_HEADER_MAGIC
dd MULTIBOOT_HEADER_FLAGS
dd MULTIBOOT_CHECKSUM
dd mboot
dd code
dd bss
dd end
dd start
stublet:
mov ah, 09h
mov bx, 0B800h
mov es, bx
mov byte [es:0], 'H'
mov byte [es:1], 1fh
int 10h
jmp $
SECTION .bss
resb 8192
_sys_stack:
I compile it using nasm and make it into a flat bin file with ld. When i try to run it under Bochs it gives me this:
00009709271p[BIOS ] >>PANIC<< floppy recal:f07: ctrl not ready
00009710605p[CPU0 ] >>PANIC<< HALT instruction encountered in the BIOS ROM
00009710605p[CPU0 ] >>PANIC<< WARNING: HLT instruction with IF=0!
00242110000p[WGUI ] >>PANIC<< POWER button turned off.
00242110000i[SYS ] Last time is 1118286863
00242110000i[CPU0 ] real mode
00242110000i[CPU0 ] CS.d_b = 16 bit
00242110000i[CPU0 ] SS.d_b = 16 bit
00242110000i[CPU0 ] | EAX=fffff001 EBX=0000ce3d ECX=00140004 EDX=00000000
00242110000i[CPU0 ] | ESP=0000ff72 EBP=0000ff84 ESI=0000733f EDI=00007365
00242110000i[CPU0 ] | IOPL=0 NV UP DI PL NZ NA PO NC
00242110000i[CPU0 ] | SEG selector base limit G D
00242110000i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
00242110000i[CPU0 ] | DS:0000( 0000| 0| 0) 00000000 0000ffff 0 0
00242110000i[CPU0 ] | ES:07c0( 0000| 0| 0) 00007c00 0000ffff 0 0
00242110000i[CPU0 ] | FS:0000( 0000| 0| 0) 00000000 0000ffff 0 0
00242110000i[CPU0 ] | GS:0000( 0000| 0| 0) 00000000 0000ffff 0 0
00242110000i[CPU0 ] | SS:0000( 0000| 0| 0) 00000000 0000ffff 0 0
00242110000i[CPU0 ] | CS:f000( 0000| 0| 0) 000f0000 0000ffff 0 0
00242110000i[CPU0 ] | EIP=00000946 (00000946)
00242110000i[CPU0 ] | CR0=0x00000010 CR1=0x00000000 CR2=0x00000000
00242110000i[CPU0 ] | CR3=0x00000000 CR4=0x00000000
When I run it with out Bochs it just reboots. Could someone please tell me what I am doign wrong here. I have been racking my brain for a while with it. Thanks alot.
[BITS 32]
global start
start:
mov esp, _sys_stack
jmp stublet
ALIGN 4
mboot:
MULTIBOOT_PAGE_ALIGN equ 1<<0
MULTIBOOT_MEMORY_INFO equ 1<<1
MULTIBOOT_AOUT_KLUDGE equ 1<<16
MULTIBOOT_HEADER_MAGIC equ 0x1BADB002
MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO | MULTIBOOT_AOUT_KLUDGE
MULTIBOOT_CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
EXTERN code, bss, end
dd MULTIBOOT_HEADER_MAGIC
dd MULTIBOOT_HEADER_FLAGS
dd MULTIBOOT_CHECKSUM
dd mboot
dd code
dd bss
dd end
dd start
stublet:
mov ah, 09h
mov bx, 0B800h
mov es, bx
mov byte [es:0], 'H'
mov byte [es:1], 1fh
int 10h
jmp $
SECTION .bss
resb 8192
_sys_stack:
I compile it using nasm and make it into a flat bin file with ld. When i try to run it under Bochs it gives me this:
00009709271p[BIOS ] >>PANIC<< floppy recal:f07: ctrl not ready
00009710605p[CPU0 ] >>PANIC<< HALT instruction encountered in the BIOS ROM
00009710605p[CPU0 ] >>PANIC<< WARNING: HLT instruction with IF=0!
00242110000p[WGUI ] >>PANIC<< POWER button turned off.
00242110000i[SYS ] Last time is 1118286863
00242110000i[CPU0 ] real mode
00242110000i[CPU0 ] CS.d_b = 16 bit
00242110000i[CPU0 ] SS.d_b = 16 bit
00242110000i[CPU0 ] | EAX=fffff001 EBX=0000ce3d ECX=00140004 EDX=00000000
00242110000i[CPU0 ] | ESP=0000ff72 EBP=0000ff84 ESI=0000733f EDI=00007365
00242110000i[CPU0 ] | IOPL=0 NV UP DI PL NZ NA PO NC
00242110000i[CPU0 ] | SEG selector base limit G D
00242110000i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
00242110000i[CPU0 ] | DS:0000( 0000| 0| 0) 00000000 0000ffff 0 0
00242110000i[CPU0 ] | ES:07c0( 0000| 0| 0) 00007c00 0000ffff 0 0
00242110000i[CPU0 ] | FS:0000( 0000| 0| 0) 00000000 0000ffff 0 0
00242110000i[CPU0 ] | GS:0000( 0000| 0| 0) 00000000 0000ffff 0 0
00242110000i[CPU0 ] | SS:0000( 0000| 0| 0) 00000000 0000ffff 0 0
00242110000i[CPU0 ] | CS:f000( 0000| 0| 0) 000f0000 0000ffff 0 0
00242110000i[CPU0 ] | EIP=00000946 (00000946)
00242110000i[CPU0 ] | CR0=0x00000010 CR1=0x00000000 CR2=0x00000000
00242110000i[CPU0 ] | CR3=0x00000000 CR4=0x00000000
When I run it with out Bochs it just reboots. Could someone please tell me what I am doign wrong here. I have been racking my brain for a while with it. Thanks alot.