Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!decvax!harpo!seismo!hao!hplabs!sri-unix!b-davis@utah-cs From: b-davis@utah-cs@sri-unix.UUCP Newsgroups: net.micro.pc Subject: Re: DOS 2.0 Function Call 4BH Message-ID: <4337@sri-arpa.UUCP> Date: Wed, 24-Aug-83 00:40:51 EDT Article-I.D.: sri-arpa.4337 Posted: Wed Aug 24 00:40:51 1983 Date-Received: Sun, 21-Aug-83 03:44:06 EDT Lines: 81 From: b-davis@utah-cs (Brad Davis) This little tidbit works. If a longer explaination is needed I will be glad to write one up. Appendix F and Chapter 10 are helpful (somewhat). Remember to use the /C option of COMMAND.COM. Brad Davis b-davis@utah-cs PSP STRUC INTVECT DW ? TOM DW ? RES1 DB ? DOSLONG DB 5 DUP (?) TERMINA DD ? CTRLBRK DD ? CRITERR DD ? DOS1 DB 22 DUP (?) ENVIRO DW ? DOS2 DB 46 DUP (?) FPA1 DB 16 DUP (?) FPA2 DB 20 DUP (?) UPA DB 128 DUP (?) PSP ENDS EXECDEF STRUC NENVIRO DW COMMND DW 2 DUP (0) FCB5CH DW 2 DUP (0) FCB6CH DW 2 DUP (0) EXECDEF ENDS MEXECOMM MACRO LOCAL EXECBLK,ERR1,SPSAVE,SSSAVE ; point DS:DX at command.com parameter list EXECOMM: PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH BP PUSH DS PUSH ES MOV SPSAVE,SP MOV SSSAVE,SS ; set up the parameter block MOV EXECBLK.NENVIRO,0 MOV EXECBLK.COMMND[0],DX MOV EXECBLK.COMMND[2],DS MOV AX,CS MOV ES,AX MOV BX,OFFSET EXECBLK XOR BP,BP ; point DS:DX at the COMSPEC parameter (assume it is first) MOV AX,[BP].ENVIRO MOV DS,AX MOV DX,8 MOV AH,4BH MOV AL,0 INT 21H MOV SS,CS:SSSAVE MOV SP,CS:SPSAVE POP ES POP DS POP BP POP DI POP SI POP DX POP CX POP BX POP AX JC ERR1 RET ERR1: JMP ERROR EVEN EXECBLK EXECDEF <> SPSAVE DW SSSAVE DW ENDM