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

  1.  
  2. ; *******************************************************
  3. ; *                            *
  4. ; *     Turbo Pascal Run-time Library                   *
  5. ; *    Windows Application Main Module            *
  6. ; *                            *
  7. ; *     Copyright (c) 1988,92 Borland International     *
  8. ; *                            *
  9. ; *******************************************************
  10.  
  11.     TITLE    WAPP
  12.  
  13.     INCLUDE    SE.ASM
  14.  
  15. DATA    SEGMENT WORD PUBLIC
  16.  
  17. ; Externals
  18.  
  19.     EXTRN    PrefixSeg:WORD,HPrevInst:WORD,HInstance:WORD
  20.     EXTRN    CmdLine:DWORD,CmdShow:WORD,Input:BYTE,Output:BYTE
  21.     EXTRN    SelectorInc:WORD,Test8086:BYTE
  22.  
  23. DATA    ENDS
  24.  
  25. ; Windows entry points
  26.  
  27.     EXTRN    WaitEvent:FAR,InitApp:FAR,GetWinFlags:FAR
  28.     EXTRN    __AHIncr:ABS
  29.  
  30. CODE    SEGMENT    BYTE PUBLIC
  31.  
  32.     ASSUME    CS:CODE,DS:DATA
  33.  
  34. ; Externals
  35.  
  36.     EXTRN    DoExitProcs:NEAR
  37.  
  38. ; Publics
  39.  
  40.     PUBLIC    InitTurbo
  41.  
  42. ; Application entry code. Every application starts with a call
  43. ; to InitTask followed by a call to this routine.
  44.  
  45. InitTurbo:
  46.  
  47.     ENTRY    WINFAR
  48.     OR    AX,AX            ;Zero if InitTask failed
  49.     JE    @@2
  50.     MOV    PrefixSeg,ES        ;Save InitTask return values
  51.     MOV    HPrevInst,SI
  52.     MOV    HInstance,DI
  53.     MOV    CmdShow,DX
  54.     MOV    CmdLine.ofs,BX
  55.     MOV    CmdLine.seg,ES
  56.     XOR    AX,AX            ;Clear event that started task
  57.     PUSH    AX
  58.     CALL    WaitEvent
  59.     PUSH    HInstance        ;Initialize application
  60.     CALL    InitApp
  61.     OR    AX,AX            ;Zero if InitApp failed
  62.     JE    @@2
  63.     CALL    GetWinFlags        ;Determine CPU type
  64.     XOR    DX,DX
  65.     TEST    AL,0C0H            ;wf_CPU086 + wf_CPU186
  66.     JNE    @@1
  67.     INC    DX
  68.     TEST    AL,02H            ;wf_CPU286
  69.     JNE    @@1
  70.     INC    DX
  71. @@1:    MOV    Test8086,DL
  72.     MOV    SelectorInc,__AHIncr
  73.     EXIT
  74. @@2:    MOV    AX,dosExit*256+0FFH
  75.     INT    DOS
  76.  
  77. CODE    ENDS
  78.  
  79.     END
  80.