;From Oscar Rodriguez Parra - Execute a program
; ********************************************************************
; * *
; * SHELL.ASM 1.0 - Demostración de carga de subprograma. *
; * *
; ********************************************************************
TAMTOT EQU 1024 ; este programa y su pila caben en 1 Kb.
shell SEGMENT
ASSUME CS:shell, DS:shell
ORG 100h
inicio:
MOV SP,TAMTOT ; redefinir la pila
MOV AH,4Ah
MOV BX,TAMTOT/16
INT 21h ; redimensionar bloque memoria
LEA DX,hola_txt
MOV AH,9
INT 21h ; mensaje de bienvenida
LEA BX,exec_info
MOV WORD PTR [BX],0
MOV WORD PTR [BX+2],80h ; PSP
MOV WORD PTR [BX+4],CS
MOV WORD PTR [BX+6],5Ch ; FCB 0
MOV WORD PTR [BX+8],CS
MOV WORD PTR [BX+0Ah],6Ch ; FCB 1
MOV WORD PTR [BX+0Ch],CS
LEA DX,nombre
MOV AX,4B00h
INT 21h ; cargar y ejecutar programa
PUSH CS
POP DS ; DS = CS
LEA DX,adios_txt
MOV AH,9
INT 21h ; mensaje de despedida
MOV AX,4C00h
INT 21h ; terminar
nombre DB "C:\DOS\COMMAND.COM",0 ; programa a ejecutar
exec_info DB 22 DUP (0)
hola_txt DB 13,10
DB "Estás dentro de SHELL.COM ...",13,10,"$"
adios_txt DB 13,10
DB "... Acabas de abandonar SHELL.COM",13,10,"$"
shell ENDS
END inicio