This is an old revision of the document!
Table of Contents
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 |




