|
|
1.1 ! root 1: TITLE execmsg - exec messages ! 2: ;*** ! 3: ;5execmsg.asm - OS/2 exec error messages ! 4: ; ! 5: ; Copyright (c) 1987, Microsoft Corporation. All rights reserved. ! 6: ; ! 7: ;Purpose: ! 8: ; error messages used with exec*() library functions ! 9: ; (and spawn*() functions with P_OVERLAY). ! 10: ; ! 11: ;******************************************************************************* ! 12: page ,132 ! 13: ! 14: include version.inc ! 15: .xlist ! 16: include cmacros.inc ! 17: .list ! 18: ! 19: createSeg HDR, nhdr, byte, public, MSG, DGROUP ! 20: createSeg MSG, nmsg, byte, public, MSG, DGROUP ! 21: createSeg PAD, npad, byte, common, MSG, DGROUP ! 22: createSeg EPAD, nepad, byte, common, MSG, DGROUP ! 23: ! 24: page ! 25: ! 26: ERROR_BAD_ENVIRONMENT = 10 ! 27: ERROR_NOT_ENOUGH_MEMORY = 8 ! 28: ! 29: externP _exit ! 30: externP _NMSG_WRITE ! 31: externP _FF_MSGBANNER ! 32: ! 33: sBegin NMSG ! 34: assumes ds,data ! 35: ! 36: dw 5 ! 37: db 'R6005',13,10,'- not enough memory on exec',13,10,0 ! 38: dw 6 ! 39: db 'R6006',13,10,'- bad format on exec',13,10,0 ! 40: dw 7 ! 41: db 'R6007',13,10,'- bad environment on exec',13,10,0 ! 42: ! 43: sEnd NMSG ! 44: ! 45: sBegin NPAD ! 46: assumes ds,data ! 47: dw -1 ! 48: ; no padding for now; ! 49: ; MAX padding would be ! 50: ; db 67 dup(0) ! 51: sEnd ! 52: ! 53: page ! 54: ! 55: sBegin CODE ! 56: assumes cs,CODE ! 57: ! 58: page ! 59: ;*** ! 60: ;_execmsg - handles fatal exec*() error messages ! 61: ; ! 62: ;Purpose: ! 63: ; prints out fatal error message for exec failures ! 64: ; using __FF_MSGBANNER and __NMSG_WRITE, ! 65: ; and then terminates hard by calling __exit. ! 66: ; ! 67: ;Entry: ! 68: ; AX == DosExecPgm error return code ! 69: ; ! 70: ;Exit: ! 71: ; none. ! 72: ; ! 73: ;Uses: ! 74: ; AX, BX, CX, DX, ES. ! 75: ; ! 76: ;Exceptions: ! 77: ; Warning: This routine does not return to the caller, it will always ! 78: ; exit through __exit(). ! 79: ;******************************************************************************* ! 80: ! 81: cProc _execmsg,<PUBLIC, NEAR> ! 82: ! 83: cBegin nogen ! 84: ! 85: or ax,ax ;See if any DOS error at all ! 86: jz Exec_Exit ! 87: ! 88: mov dx,7 ;See if "Bad Environment" ! 89: cmp ax,ERROR_BAD_ENVIRONMENT ! 90: je Exec_Msg ! 91: ! 92: mov dx,5 ;See if "Out of Memory" ! 93: cmp ax,ERROR_NOT_ENOUGH_MEMORY ! 94: je Exec_Msg ! 95: ! 96: mov dx,6 ;See if not "Bad Exec" ! 97: ! 98: Exec_Msg: ! 99: push dx ;Parmeter is the message index number. ! 100: call __FF_MSGBANNER ;write out 13,10,'run-time error ' ! 101: call __NMSG_WRITE ! 102: ! 103: mov ax,-1 ! 104: ! 105: Exec_Exit: ! 106: push ax ! 107: call __exit ;Terminate job. ! 108: ! 109: cEnd nogen ! 110: ! 111: sEnd CODE ! 112: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.