home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / LESS_SRC.ZIP / C0.ASM < prev    next >
Assembly Source File  |  1994-08-05  |  5KB  |  184 lines

  1.         NAME    c0
  2.         PAGE    60,132
  3.         LOCALS
  4. ;[]------------------------------------------------------------[]
  5. ;|      C0.ASM -- Start Up Code                                 |
  6. ;|                                                              |
  7. ;|      Turbo C++ Run Time Library                              |
  8. ;|                                                              |
  9. ;|      Copyright (c) 1987, 1991 by Borland International Inc.  |
  10. ;|      All Rights Reserved.                                    |
  11. ;[]------------------------------------------------------------[]
  12.  
  13.                                 __C0__ = 1
  14.                                 __TINY__ = 1
  15. INCLUDE         C:\BORLANDC\LIB\STARTUP\RULES.ASI
  16. dosseg
  17. ;       Segment and Group declarations
  18.  
  19. _TEXT           SEGMENT BYTE PUBLIC 'CODE'
  20.                 ENDS
  21. _FARDATA        SEGMENT PARA PUBLIC 'FAR_DATA'
  22.                 ENDS
  23. _FARBSS         SEGMENT PARA PUBLIC 'FAR_BSS'
  24.                 ENDS
  25. IFNDEF __TINY__
  26. _OVERLAY_       SEGMENT PARA PUBLIC 'OVRINFO'
  27.         ENDS
  28. _1STUB_     SEGMENT PARA PUBLIC 'STUBSEG'
  29.         ENDS
  30. ENDIF
  31. _DATA           SEGMENT PARA PUBLIC 'DATA'
  32.                 ENDS
  33. _INIT_          SEGMENT WORD PUBLIC 'INITDATA'
  34. InitStart       label byte
  35.                 ENDS
  36. _INITEND_       SEGMENT BYTE PUBLIC 'INITDATA'
  37. InitEnd         label byte
  38.                 ENDS
  39. _EXIT_          SEGMENT WORD PUBLIC 'EXITDATA'
  40. ExitStart       label byte
  41.                 ENDS
  42. _EXITEND_       SEGMENT BYTE PUBLIC 'EXITDATA'
  43. ExitEnd         label byte
  44.                 ENDS
  45. _CVTSEG         SEGMENT WORD PUBLIC 'DATA'
  46.                 ENDS
  47. _SCNSEG         SEGMENT WORD PUBLIC 'DATA'
  48.                 ENDS
  49. IFNDEF __HUGE__
  50.   _BSS          SEGMENT WORD PUBLIC 'BSS'
  51.                 ENDS
  52.   _BSSEND       SEGMENT BYTE PUBLIC 'BSSEND'
  53.                 ENDS
  54. ENDIF
  55. IFNDEF __TINY__
  56.   _STACK        SEGMENT STACK 'STACK'
  57.                 ENDS
  58. ENDIF
  59.  
  60.         ASSUME  CS:_TEXT, DS:DGROUP
  61.  
  62. ;       External References
  63.  
  64. extrn           MAIN:DIST;_main:DIST
  65. extrn        _exit:DIST
  66. extrn        __exitbuf:DIST
  67. extrn        __exitfopen:DIST
  68. extrn        __exitopen:DIST
  69. extrn        __setupio:near            ;required!
  70. extrn        __stklen:word
  71. IF LDATA EQ false
  72. extrn        __heaplen:word
  73. ENDIF
  74.  
  75.         SUBTTL  Start Up Code
  76.         PAGE
  77. ;/*                                                     */
  78. ;/*-----------------------------------------------------*/
  79. ;/*                                                     */
  80. ;/*     Start Up Code                                   */
  81. ;/*     -------------                                   */
  82. ;/*                                                     */
  83. ;/*-----------------------------------------------------*/
  84. ;/*                                                     */
  85. PSPHigh         equ     00002h
  86. PSPEnv          equ     0002ch
  87. PSPCmd          equ     00080h
  88.  
  89.                 public  __AHINCR
  90. __AHINCR        equ     1000h
  91.                 public  __AHSHIFT
  92. __AHSHIFT       equ     12
  93.  
  94. IFDEF    __NOFLOAT__
  95. MINSTACK        equ     128     ; minimal stack size in words
  96. ELSE
  97. MINSTACK        equ     256     ; minimal stack size in words
  98. ENDIF
  99. ;
  100. ;       At the start, DS and ES both point to the segment prefix.
  101. ;       SS points to the stack segment except in TINY model where
  102. ;       SS is equal to CS
  103. ;
  104. _TEXT           SEGMENT
  105.                 ORG     100h
  106. STARTX          PROC    NEAR
  107.                 mov     dx, cs;DGROUP      ; DX = GROUP Segment address
  108.                 mov     ds, dx
  109. ;;                mov oldss,ss
  110. ;;                mov oldsp,sp
  111.                 mov bx,0fffeh;;offset DGROUP:stack__end
  112.                 cli                     ; req'd for pre-1983 88/86s
  113.                 ;;mov dx,seg _STACK
  114.                 mov     ss, dx          ; Set the program stack
  115.                 mov     sp, bx;;offset DGROUP:stack__end-2
  116.                 sti
  117.                 call    MAIN;_main
  118.  
  119. ;;                mov dx,oldss
  120. ;;                mov bx,oldsp
  121. ;;                cli
  122. ;;                mov ss,dx
  123. ;;                mov sp,bx
  124. ;;                sti
  125. ExitToDOS       label   near
  126.                                 mov     ax,4C00h
  127.                                 int     21h                     ; Exit to DOS
  128. STARTX          ENDP
  129. ;;oldss dw 0
  130. ;;oldsp dw 0
  131.  
  132.  
  133.         SUBTTL  Vector save/restore & default Zero divide routines
  134.         PAGE
  135.  
  136.  
  137.  
  138. ; The DGROUP@ variable is used to reload DS with DGROUP
  139.  
  140. ;PubSym@         DGROUP@, <dw    ?>, __PASCAL__
  141.  
  142. ; __MMODEL is used to determine the memory model or the default
  143. ; pointer types at run time.
  144.  
  145. ;                public __MMODEL
  146. ;__MMODEL        dw      MMODEL
  147.  
  148. _TEXT        ENDS
  149.  
  150.             SUBTTL  Start Up Data Area
  151.             PAGE
  152.  
  153. _DATA        SEGMENT
  154.  
  155. ;    Magic symbol used by the debug info to locate the data segment
  156.         public DATASEG@
  157. DATASEG@    label    byte
  158.  
  159.  
  160. _DATA            ENDS
  161.  
  162.  
  163. _CVTSEG     SEGMENT
  164. PubSym@         _RealCvtVector, <label  word>,  __CDECL__
  165.             ENDS
  166.  
  167. _SCNSEG     SEGMENT
  168. PubSym@         _ScanTodVector,  <label word>,  __CDECL__
  169.             ENDS
  170.  
  171. _BSS        SEGMENT
  172. bdata@          label   byte
  173.         ENDS
  174.  
  175. _BSSEND        SEGMENT
  176. edata@          label   byte
  177.             ENDS
  178. ;public stack__end
  179. ;_STACK          SEGMENT
  180. ;stack___           db      128 dup(?) ;;49152 dup(?)               ;minimum stack size
  181. ;stack__end         db ?
  182. ;                ENDS
  183.             END     STARTX
  184.