Am Tue, 18 Mar 2008 18:09:56 +0000 schrieb Alex Buell:
> On Tue, 18 Mar 2008 07:43:50 +0100, I waved a wand and this message
> magically appears in front of Dirk Wolfgang Glomp:
>
>> [vmode.asm]
>> Maybe anyone start your executable within an other executable using
>> ax=4B00h/int 21h(with own parameter block) as a child process, so it
>> is necessary to get the segment of the current psp, before searching
>> for some bytes of a wrong commandline.
>
> Hmm, I did some experiements shelling out the program, but didn't see
> anything go bang. I also looked at Ralf Brown's Interrupt List for
> AX=0x4B00/int 0x21, but doesn't seem to be do***ented...
RBIL->inter61b.zip->Interrup.g
--------D-214B-------------------------------
INT 21 - DOS 2+ - "EXEC" - LOAD AND/OR EXECUTE PROGRAM
AH = 4Bh
AL = type of load
00h load and execute
....
DS:DX -> ASCIZ program name (must include extension)
ES:BX -> parameter block (see #01590,#01591,#01592)
.....
Format of EXEC parameter block for AL=00h,01h,04h:
Offset Size Description (Table 01590)
00h WORD segment of environment to copy for child process (copy caller's
environment if 0000h)
02h DWORD pointer to command tail to be copied into child's PSP
06h DWORD pointer to first FCB to be copied into child's PSP
0Ah DWORD pointer to second FCB to be copied into child's PSP
.....
Notes:...
--------------------------------------------------------------------
PARBLOCK equ THIS WORD ; EXEC parameter block
DW 0 ; same environment-block
DW OFFSET COMLINE ; pointer(offset/segment) to child-commandline
DW SEG CODE
DD 0 ; no entry in PSP #1
DD 0 ; no entry in PSP #2
COMLINE DB 80h dup (0) ; child-commandline
Dirk


|