SVC_ERROREXIT
Brief
Terminate MVM with error message (far pointer to ASCIIZ message on stack)
Input
- Stack (top) = far pointer (segment:offset) to an ASCIIZ message string
Return
This function does not return. The MVM is terminated and control passes to the host operating system.
Notes
- The message must be a null‑terminated ASCII string.
- The far pointer must be pushed onto the stack (segment first, then offset) before issuing the HLT instruction.
- Because the call never returns, no registers are preserved and the carry flag is undefined.
Binding
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"); }
The underlying pragma is defined as:
extern void SvcErrorExit(const char far *msg); #pragma aux SvcErrorExit = \ "hlt" \ "db 1" \ "db NOT 1" \ parm caller [] [msg] \ modify [ax bx cx dx];
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 |




