Switched FASM to NASM
If I'm gonna port a C compiler I might as well use and port NASM as it is more widely used anyway
This commit is contained in:
parent
5badddbada
commit
e21e42d318
3 changed files with 17 additions and 19 deletions
2
Makefile
2
Makefile
|
@ -3,7 +3,7 @@ clean:
|
||||||
-@rm build/*.o build/*.elf 2> /dev/null || true
|
-@rm build/*.o build/*.elf 2> /dev/null || true
|
||||||
|
|
||||||
build/start32.o: build/ src/start32.asm
|
build/start32.o: build/ src/start32.asm
|
||||||
fasm src/start32.asm build/start32.o
|
nasm -felf32 src/start32.asm -o build/start32.o
|
||||||
build/kernel-i386.elf: build/start32.o
|
build/kernel-i386.elf: build/start32.o
|
||||||
tcc -m32 -nostdlib -Wl,-Ttext,0x100000 -o build/kernel-i386.elf src/*.c build/start32.o
|
tcc -m32 -nostdlib -Wl,-Ttext,0x100000 -o build/kernel-i386.elf src/*.c build/start32.o
|
||||||
image: build/kernel-i386.elf mount
|
image: build/kernel-i386.elf mount
|
||||||
|
|
|
@ -3,7 +3,7 @@ Multiboot compatible stupid useless OS-like project.
|
||||||
## Compatibility
|
## Compatibility
|
||||||
32bit x86 legacy BIOS system
|
32bit x86 legacy BIOS system
|
||||||
## Building
|
## Building
|
||||||
FASM and TinyCCompiler are used.
|
NASM and TinyCCompiler are used.
|
||||||
TCC might need manual compilation for 32bit crosscompilation
|
TCC might need manual compilation for 32bit crosscompilation
|
||||||
on 64bit systems.
|
on 64bit systems.
|
||||||
Just download the source and `make cross` or something.
|
Just download the source and `make cross` or something.
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
format elf
|
|
||||||
use32
|
|
||||||
|
|
||||||
MULTIBOOT_PAGE_ALIGN equ (1 shl 0)
|
|
||||||
MULTIBOOT_MEMORY_INFO equ (1 shl 1)
|
|
||||||
MULTIBOOT_VIDEO_REQUEST equ (1 shl 2)
|
|
||||||
MULTIBOOT_AOUT_KLUDGE equ (1 shl 16)
|
|
||||||
MULTIBOOT_HEADER_MAGIC equ 0x1BADB002
|
MULTIBOOT_HEADER_MAGIC equ 0x1BADB002
|
||||||
MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_PAGE_ALIGN or MULTIBOOT_MEMORY_INFO or MULTIBOOT_VIDEO_REQUEST
|
MULTIBOOT_PAGE_ALIGN equ 1 << 0
|
||||||
|
MULTIBOOT_MEMORY_INFO equ 1 << 1
|
||||||
|
MULTIBOOT_VIDEO_REQUEST equ 0 << 2
|
||||||
|
MULTIBOOT_AOUT_KLUDGE equ 0 << 16
|
||||||
|
MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO | MULTIBOOT_VIDEO_REQUEST
|
||||||
MULTIBOOT_CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
|
MULTIBOOT_CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
|
||||||
|
|
||||||
section '.multiboot' align 4
|
section .multiboot
|
||||||
|
align 4
|
||||||
dd MULTIBOOT_HEADER_MAGIC
|
dd MULTIBOOT_HEADER_MAGIC
|
||||||
dd MULTIBOOT_HEADER_FLAGS
|
dd MULTIBOOT_HEADER_FLAGS
|
||||||
dd MULTIBOOT_CHECKSUM
|
dd MULTIBOOT_CHECKSUM
|
||||||
|
@ -23,14 +21,15 @@ section '.multiboot' align 4
|
||||||
dd 768 ; video height
|
dd 768 ; video height
|
||||||
dd 32 ; video depth
|
dd 32 ; video depth
|
||||||
|
|
||||||
section '.bss' writable align 16
|
section .bss
|
||||||
|
align 16
|
||||||
stack_bottom:
|
stack_bottom:
|
||||||
rb 16384
|
resb 16384
|
||||||
stack_top:
|
stack_top:
|
||||||
|
|
||||||
section '.text' executable
|
section .text
|
||||||
public _start
|
global _start
|
||||||
extrn kmain
|
extern kmain
|
||||||
|
|
||||||
_start:
|
_start:
|
||||||
; Setup stack
|
; Setup stack
|
||||||
|
@ -41,8 +40,7 @@ _start:
|
||||||
push eax
|
push eax
|
||||||
call kmain
|
call kmain
|
||||||
|
|
||||||
|
.hang:
|
||||||
@@:
|
|
||||||
cli
|
cli
|
||||||
hlt
|
hlt
|
||||||
jmp @b
|
jmp .hang
|
||||||
|
|
Loading…
Reference in a new issue