INT 21 U - OS/2 v2.1+ Virtual DOS MachineA special type of virtual machine provided by OS/2 version 2.0, in which a copy of MS-DOS or an MS-DOS compatible operating system (or even an incompatible 8086 operating system) is run and appears to have full control of the system. See also Virtual Machine, INT 21h Function 64h. - OS/2 API(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running. Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes. DOS32StartSession AH = 64h BX = 0025h (API(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running. Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes. ordinal) CX = 636Ch ("cl") DS:SI -> STARTDATA structure (see #01748) Return: AX = return code SeeAlso: AH=64h/CX=636Ch,AH=64h/BX=00B6h Format of OS/2 Virtual DOS MachineA special type of virtual machine provided by OS/2 version 2.0, in which a copy of MS-DOS or an MS-DOS compatible operating system (or even an incompatible 8086 operating system) is run and appears to have full control of the system. See also Virtual Machine, INT 21h Function 64h. STARTDATA structure: Offset Size Description (Table 01748) 00h WORD length of structure (must be 0018h,001Eh,0020h,0032h,or 003Ch) 02h WORD relation of new process to caller (00h independent, 01h child) 04h WORD fore/background (00h foreground, 01h background) 06h WORD trace options (00h-02h, 00h = no trace) 08h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. program title (max 62 chars) or 0000h:0000h 0Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. program name (max 128 chars) or 0000h:0000h 10h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. program args (max 144 chars) or 0000h:0000h 14h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. "TermQ" (currently reserved, must be 00000000h) 18h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to environment (max 486 bytes) or 0000h:0000h 1Ch WORD inheritance (00h or 01h) 1Eh WORD session type 00h OS/2 session manager determines type (default) 01h OS/2 full-screen 02h OS/2 window 03h PM 04h VDMsee Virtual DOS Machine full-screen 07h VDMsee Virtual DOS Machine window 20h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. pointer to ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. icon filename (max 128 chars) or 0000h:0000h 24h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. "PgmHandle" (currently reserved, must be 00000000h) 28h WORD "PgmControl" 2Ah WORD initial column 2Ch WORD initial row 2Eh WORD initial width 30h WORD initial height 32h WORD reserved (0) 34h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. "ObjectBuffer" (currently reserved, must be 00000000h) 38h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. "ObjectBufferLen" (currently reserved, must be 00000000h)