diff --git a/include/mem.h b/include/mem.h index 0a98e20..0fc65ba 100644 --- a/include/mem.h +++ b/include/mem.h @@ -157,7 +157,7 @@ macro use lib*,fonction* db `lib,"::",`fonction,0 fonction: dd 0 - dd 0 + dw 0 } macro declare fonction* diff --git a/makefile b/makefile index 30a831c..2b4300d 100644 --- a/makefile +++ b/makefile @@ -20,6 +20,8 @@ copy: test: all copy qemu +retest: clean test + view: final/cos2000.img (hexdump -C ./final/cos2000.img|head -c10000) diff --git a/noyau/mcb.asm b/noyau/mcb.asm index 859de23..46b5c32 100644 --- a/noyau/mcb.asm +++ b/noyau/mcb.asm @@ -149,6 +149,7 @@ proc mbloadsection uses ax bx cx si di ds es, blocks:word add ax,4 pushad stdcall biosprint,ax +stdcall biosprint,return popad stdcall mbcreate,ax,word [bx+2] jc .error @@ -191,6 +192,7 @@ popad ret endp +return db 0dh,0ah,0 ;Initialise les blocs de mémoire en prenant memorystart pour segment de base proc mbinit uses ax cx si di ds es @@ -618,11 +620,16 @@ proc mbloadfuncs uses ax bx cx dx si ds, blocks:word cmp word [si],0 je .endofloading stdcall mbsearchfunc,si +pushad +stdcall biosprint,si +push ds +push cs +pop ds +stdcall biosprint,return +pop ds +popad jnc .toendoftext mov bx,si -;pushad -;stdcall biosprint,si -;popad .findend: inc bx cmp byte [bx], ':' @@ -646,7 +653,7 @@ proc mbloadfuncs uses ax bx cx dx si ds, blocks:word inc si mov [si],ax mov [si+2],dx - add si,4 + add si,6 jmp .loadfuncs .endofloading: clc diff --git a/noyau/systeme.asm b/noyau/systeme.asm index 23ba9dc..3ef80ab 100644 --- a/noyau/systeme.asm +++ b/noyau/systeme.asm @@ -173,14 +173,15 @@ error: stdcall bioswaitkey jmp far 0FFFFh:0000h -shell find "COMMANDE.CE\0" +shell find "COMMANDE.CE" +db 0 thepci pciinf thecpu cpu temporary db 256 dup (0) makereturn db 0dh,0ah,0 msg_memory db "Initialisation de la memoire",0 msg_memory_init db " -Creation du bloc primordial",0 -msg_memory_section db " -Developpement des sections",0 +msg_memory_section db " -Developpement des sections",0dh,0ah,0 msg_memory_jumps db "Redirection du systeme",0 msg_video_init db "Initialisation du pilote VIDEO",0 msg_handler db "Initialisation du gestionnaire d'interruption",0