feat: ajout de la fonction fileexec permetant l'execution directe d'un fichier. La liberation de la mémoire n'est pas encore prise en compte.
This commit is contained in:
parent
8a5dcd0172
commit
4b570f7995
|
@ -69,6 +69,7 @@ tables dw readsector
|
||||||
dw writecluster
|
dw writecluster
|
||||||
dw getdir
|
dw getdir
|
||||||
dw projfile
|
dw projfile
|
||||||
|
dw execfile
|
||||||
|
|
||||||
maxfunc equ 24
|
maxfunc equ 24
|
||||||
|
|
||||||
|
@ -156,6 +157,45 @@ errorload:
|
||||||
mov ecx,0
|
mov ecx,0
|
||||||
pop di bx eax
|
pop di bx eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
;============execfile (Fonction 18)===============
|
||||||
|
;Execute le fichier ds:si
|
||||||
|
;-> AH=18
|
||||||
|
;<- Flag Carry si erreur
|
||||||
|
;=====================================================
|
||||||
|
execfile:
|
||||||
|
pushad
|
||||||
|
pushf
|
||||||
|
push ds es fs gs
|
||||||
|
mov ah,17
|
||||||
|
int 48h
|
||||||
|
jc reallyerror
|
||||||
|
push cs
|
||||||
|
mov ax,offset arrive
|
||||||
|
push ax
|
||||||
|
push es
|
||||||
|
push 0100h
|
||||||
|
push es
|
||||||
|
push es
|
||||||
|
push es
|
||||||
|
pop ds
|
||||||
|
pop fs
|
||||||
|
pop gs
|
||||||
|
push 7202h
|
||||||
|
popf
|
||||||
|
sti
|
||||||
|
db 0CBh
|
||||||
|
arrive:
|
||||||
|
cli
|
||||||
|
pop gs fs es ds
|
||||||
|
popf
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
reallyerror:
|
||||||
|
pop gs fs es ds
|
||||||
|
popf
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
|
||||||
;============projfile (Fonction 17)===============
|
;============projfile (Fonction 17)===============
|
||||||
;Charge le fichier ds:si sur un bloc mémoire -> ecx taille -> es bloc
|
;Charge le fichier ds:si sur un bloc mémoire -> ecx taille -> es bloc
|
||||||
|
|
Loading…
Reference in New Issue