home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / dos_ency / 4 / fig4_3.asm < prev    next >
Encoding:
Assembly Source File  |  1988-08-11  |  1.1 KB  |  39 lines

  1. TEXT    SEGMENT PARA PUBLIC 'CODE'
  2.  
  3.         ASSUME  CS:TEXT,DS:NOTHING,ES:NOTHING,SS:NOTHING
  4.  
  5. TERM_VECTOR     DD      ?
  6.  
  7. ENTRY_PROC      PROC    FAR
  8.  
  9. ;save pointer to termination vector in PSP
  10.  
  11.         MOV     WORD PTR CS:TERM_VECTOR+0,0000h ;save offset of Warm Boot vector
  12.         MOV     WORD PTR CS:TERM_VECTOR+2,DS    ;save segment address of PSP
  13.  
  14. ;***** Place main task here *****
  15.  
  16. ;determine which MS-DOS version is active, take jump if 2.0 or later
  17.  
  18.         MOV     AH,30h          ;load Get MS-DOS Version Number function code
  19.         INT     21h             ;call MS-DOS to get version number
  20.         OR      AL,AL           ;see if pre-2.0 MS-DOS
  21.         JNZ     TERM_0200       ;jump if 2.0 or later
  22.  
  23. ;terminate under pre-2.0 MS-DOS
  24.  
  25.         JMP     CS:TERM_VECTOR  ;jump to Warm Boot vector in PSP
  26.  
  27. ;terminate under MS-DOS 2.0 or later
  28.  
  29. TERM_0200:
  30.         MOV     AX,4C00h        ;load MS-DOS termination function code
  31.                                 ;and return code
  32.         INT     21h             ;call MS-DOS to terminate
  33.  
  34. ENTRY_PROC      ENDP
  35.  
  36. TEXT    ENDS
  37.  
  38.         END     ENTRY_PROC      ;define entry point
  39.