feat: finalisation des commandes "execfile" et "projfile" Prise en compte des sections dans la commande execfile

This commit is contained in:
Nicolas Hordé 2007-03-18 20:39:24 +00:00
parent a0c5c481fd
commit d61a193186
1 changed files with 26 additions and 31 deletions

View File

@ -44,6 +44,7 @@ use SYSTEME,mbresident
use SYSTEME,mbfind use SYSTEME,mbfind
use SYSTEME,mbchown use SYSTEME,mbchown
use SYSTEME,mbloadfuncs use SYSTEME,mbloadfuncs
use SYSTEME,mbloadsection
endi endi
@ -147,30 +148,24 @@ PROC execfile FAR
mov dx,[ss:bp+10] mov dx,[ss:bp+10]
pushad pushad
push ds es fs gs push ds es fs gs
call projfile call projfile,dx
jc @@reallyerror jc @@reallyerror
push es call [cs:mbchown],ax,dx
pop gs jc @@reallyerror
mov ah,6 call [cs:mbloadfuncs],ax
int 49h jc @@reallyerror
mov ah,12 call [cs:mbloadsection],ax
int 49h
jc @@reallyerror jc @@reallyerror
push es
push cs
mov ax,offset @@arrive
push ax push ax
push es push ax
cmp [word ptr gs:0h],'EC' pop ds
jne @@noce push cs
push size exe push offset @@arrive
jmp @@wasce push ds
@@noce: push [word ptr (exe).starting]
push 0000h push ds
@@wasce: push ds
push es push ds
push es
push es
pop ds pop ds
pop fs pop fs
pop gs pop gs
@ -180,26 +175,25 @@ PROC execfile FAR
db 0CBh db 0CBh
@@arrive: @@arrive:
cli cli
pop gs pop ax
mov ah,01 call [cs:mbfree],ax
int 49h
pop gs fs es ds pop gs fs es ds
popad popad
pop dx bp pop dx bp
popf popf
ret ret
@@reallyerror: @@reallyerror:
pop gs fs es ds pop gs fs es ds
popad popad
pop dx bp pop dx bp
popf popf
stc stc
ret ret
endp execfile endp execfile
;============projfile (Fonction 17)=============== ;============projfile (Fonction 17)===============
;Charge le fichier ds:%0 sur un bloc mémoire -> eax taille -> es bloc ;Charge le fichier ds:%0 sur un bloc mémoire -> eax taille -> es bloc
;-> ;-> ax bloc mémoire
;<- Flag Carry si erreur ;<- Flag Carry si erreur
;===================================================== ;=====================================================
PROC projfile FAR PROC projfile FAR
@ -222,6 +216,7 @@ USES cx,si,di,ds,es
mov eax,[es:(find si).result.filesize] mov eax,[es:(find si).result.filesize]
call loadway,cx,eax,0 call loadway,cx,eax,0
jc @@errorload jc @@errorload
mov ax,ds
clc clc
ret ret
@@errorload: @@errorload: