diff --git a/harbour/source/vm/borinit.c b/harbour/source/vm/borinit.c new file mode 100644 index 0000000000..dd4e9b3ece --- /dev/null +++ b/harbour/source/vm/borinit.c @@ -0,0 +1,50 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * Borland _INIT_ segment initialization when not using Borland startup + * + * Copyright 1999 Antonio Linares + * www - http://www.harbour-project.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version, with one exception: + * + * The exception is that if you link the Harbour Runtime Library (HRL) + * and/or the Harbour Virtual Machine (HVM) with other files to produce + * an executable, this does not by itself cause the resulting executable + * to be covered by the GNU General Public License. Your use of that + * executable is in no way restricted on account of linking the HRL + * and/or HVM code into it. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit + * their web site at http://www.gnu.org/). + * + */ + +typedef struct +{ + char c1, c2; + void ( * pInitFunc )( void ); +} HB_BORINITSYMBOL, * HB_PBORINITSYMBOL; + +extern HB_BORINITSYMBOL hb_BorFirstSymbol, hb_BorLastSymbol; + +void hb_vmProcessBorlandInitSegment( void ) +{ + HB_PBORINITSYMBOL pFirst = &hb_BorFirstSymbol; + + while( pFirst < ( &hb_BorLastSymbol - 1 ) ) + ( pFirst++ )->pInitFunc(); +} \ No newline at end of file diff --git a/harbour/source/vm/borsym.asm b/harbour/source/vm/borsym.asm new file mode 100644 index 0000000000..d89305a5bf --- /dev/null +++ b/harbour/source/vm/borsym.asm @@ -0,0 +1,56 @@ + ; + ; $Id$ + ; + ; Harbour Project source code: + ; Borland _INIT_ segment bounds when not using Borland startup + ; + ; Copyright 1999 Antonio Linares + ; www - http://www.harbour-project.org + ; + ; This program is free software; you can redistribute it and/or modify + ; it under the terms of the GNU General Public License as published by + ; the Free Software Foundation; either version 2 of the License, or + ; (at your option) any later version, with one exception: + ; + ; The exception is that if you link the Harbour Runtime Library (HRL) + ; and/or the Harbour Virtual Machine (HVM) with other files to produce + ; an executable, this does not by itself cause the resulting executable + ; to be covered by the GNU General Public License. Your use of that + ; executable is in no way restricted on account of linking the HRL + ; and/or HVM code into it. + ; + ; This program is distributed in the hope that it will be useful, + ; but WITHOUT ANY WARRANTY; without even the implied warranty of + ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ; GNU General Public License for more details. + ; + ; You should have received a copy of the GNU General Public License + ; along with this program; if not, write to the Free Software + ; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit + ; their web site at http://www.gnu.org/). + ; + +.386 + +HB_STARTBORSYMBOLS segment dword use32 public 'INITDATA' +HB_STARTBORSYMBOLS ends + +_INIT_ segment dword use32 public 'INITDATA' +_INIT_ ends + +HB_ENDBORSYMBOLS segment dword use32 public 'INITDATA' +HB_ENDBORSYMBOLS ends + +DGROUP group HB_STARTBORSYMBOLS, _INIT_, HB_ENDBORSYMBOLS + + public _hb_BorFirstSymbol, _hb_BorLastSymbol + +HB_STARTBORSYMBOLS segment + _hb_BorFirstSymbol label byte +HB_STARTBORSYMBOLS ends + +HB_ENDBORSYMBOLS segment + _hb_BorLastSymbol label byte +HB_ENDBORSYMBOLS ends + + end \ No newline at end of file