feat: finalisation des commandes "execfile" et "projfile" Prise en compte des sections dans la commande execfile
This commit is contained in:
parent
a0c5c481fd
commit
d61a193186
|
@ -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:
|
||||||
|
|
Loading…
Reference in New Issue