home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l040 / 13.ddi / RTLSYS.ZIP / EI86.ASM < prev    next >
Encoding:
Assembly Source File  |  1992-10-28  |  1.2 KB  |  65 lines

  1.  
  2. ; *******************************************************
  3. ; *                            *
  4. ; *     Turbo Pascal Run-time Library                   *
  5. ; *    Software Emulator Initialization        *
  6. ; *                            *
  7. ; *     Copyright (c) 1988,92 Borland International     *
  8. ; *                            *
  9. ; *******************************************************
  10.  
  11.     TITLE    EI86
  12.  
  13.     INCLUDE    SE.ASM
  14.  
  15. ; Size of emulator data in stack segment
  16.  
  17. emDataSize    EQU    230
  18.  
  19. DATA    SEGMENT    WORD PUBLIC
  20.  
  21. ; Externals
  22.  
  23.     IF NOT DPMIVersion
  24.     EXTRN    StackLimit:WORD
  25.     ENDIF
  26.  
  27. DATA    ENDS
  28.  
  29. CODE    SEGMENT    BYTE PUBLIC
  30.  
  31.     ASSUME    CS:CODE,DS:DATA
  32.  
  33. ; Externals
  34.  
  35.     EXTRN    E086_Entry:NEAR,E086_Shortcut:NEAR
  36.     EXTRN    E087_Entry:NEAR,E087_Shortcut:NEAR
  37.     EXTRN    Check8087:NEAR,Init8087:NEAR
  38.  
  39. ; Publics
  40.  
  41.     PUBLIC    InitEM86
  42.  
  43. ; Initialize software emulator. Called right after main startup
  44. ; code by programs compiled in the {$N+,E+} state.
  45.  
  46. InitEM86:
  47.  
  48.     CALL    Check8087
  49.     MOV    SI,OFFSET E087_Entry
  50.     MOV    DI,OFFSET E087_Shortcut
  51.     OR    AL,AL
  52.     JNE    @@1
  53.     IF DPMIVersion
  54.     MOV    SS:pStackTop,emDataSize+10H
  55.     ELSE
  56.     MOV    StackLimit,emDataSize
  57.     ENDIF
  58.     MOV    SI,OFFSET E086_Entry
  59.     MOV    DI,OFFSET E086_Shortcut
  60. @@1:    JMP    Init8087
  61.  
  62. CODE    ENDS
  63.  
  64.     END
  65.