SVC_ERROREXIT

Terminate MVM with an error message. This call displays a message and then terminates the current MVM session.

Parameters

Register	Description
Stack (top)	Far pointer (segment:offset) to an ASCIIZ message string. The message is displayed by the host system before termination.

Return Value

This function does not return; it terminates the MVM.

Description

SVC_ERROREXIT provides a way to terminate the MVM (Multiple Virtual DOS Machine) with a user‑supplied error message. It is specific to the OS/2 MVDM environment and has no direct equivalent in DOS INT 21h (the closest is AH=4Ch, which terminates without a message).

Before invoking the call, the far pointer (segment and offset) of a null‑terminated ASCII string must be pushed onto the stack. The host system (OS/2) will display the message and then terminate the virtual machine.

Interface

/* SVC_ERROREXIT – terminate with error message (far pointer on stack) */ extern void SvcErrorExit(const char far *msg); #pragma aux SvcErrorExit = \ "hlt" \ "db 1" \ "db NOT 1" \ parm caller [] [msg] \ modify [ax bx cx dx];

Example

MASM

include macrolib.inc push ds push offset msg @SvcErrorExit msg db "Fatal error",0

C

#include <svc.h> void main(void) { SvcErrorExit("Fatal error"); }

Notes

The message string must be in the ASCIIZ format (zero‑terminated).

After this call, the MVM is terminated and control returns to the host operating system.

Because the call never returns, no register values are preserved.

See Also

SVC_EXIT – terminate without a message.

INT 21h AH=4Ch – DOS terminate with return code.

SVC API
Supervisor calls	0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
Structures	FCB XFCB FILETIME FILEDATE