home *** CD-ROM | disk | FTP | other *** search
- TEXT SEGMENT PARA PUBLIC 'CODE'
-
- ASSUME CS:TEXT,DS:NOTHING,ES:NOTHING,SS:NOTHING
-
- ENTRY_PROC PROC FAR ;make proc FAR so RET will be FAR
-
- ;Push pointer to termination vector in PSP
- PUSH DS ;push PSP's segment address
- XOR AX,AX ;ax = 0 = offset of Warm Boot vector in PSP
- PUSH AX ;push Warm Boot vector offset
-
- ;***** Place main task here *****
-
- ;Determine which MS-DOS version is active, take jump if 2.0 or later
-
- MOV AH,30h ;load Get MS-DOS Version Number function code
- INT 21h ;call MS-DOS to get version number
- OR AL,AL ;see if pre-2.0 MS-DOS
- JNZ TERM_0200 ;jump if 2.0 or later
-
- ;Terminate under pre-2.0 MS-DOS (this is a FAR proc, so RET will be FAR)
- RET ;pop PSP:00H into CS:IP to terminate
-
- ;Terminate under MS-DOS 2.0 or later
- TERM_0200:
- MOV AX,4C00h ;AH = MS-DOS Terminate Process with Return Code
- ;function code, AL = return code of 00H
- INT 21h ;call MS-DOS to terminate
-
- ENTRY_PROC ENDP
-
- TEXT ENDS
-
- END ENTRY_PROC ;declare the program's entry point
-