Metropoli BBS
VIEWER: shell.asm MODE: TEXT (CP437)
;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


[ RETURN TO DIRECTORY ]