/*
 * $Id: hrb_faq.txt 9312 2008-09-05 00:08:34Z vszakats $
 */

.hrb FAQ list 1999/05/19:

Current only available in a 32bit Intel version.

HRB structure (also known as Harbour Portable Objects) and
Runner (also known as TugBoat, Stubbing Executables (not yet) )

To create a runner :

        C:..> bld32exe runner

Once the runner is created,
To create a .hrb and run it :

        C:..> hbrun <filename>


If you just want to run a .hrb file :

        C:..> runner <filename with .hrb>

If you just want to create a .hrb file :

        Use command-line switch -gHRB when invoking Harbour

To see the contents of a .hrb file :

        C:..> clipper readhrb /n/a/w           {I am sorry}
        C:..> blinker @readhrb
        C:..> readhrb <filename without .hrb>  {What do mean consistent}

        If it goes too fast a readhrb.out is created containing the screen
        output.

To run a .hrb file within a .prg (only possible if the .prg is compiled as a
.hrb file) :

        HB_Run( <cFileName> )

-------------------------------------------------------------------------------
HRB structure (also known as Harbour Portable Objects) and
Runner (also known as TugBoat, Stubbing Executables (not yet) )

Version 1.0

The ultimate version will of course feature more, but let's just stick to the
minimal requirements.

The .hrb structure consists :

<ulSymbols>       Long containing the number of symbols
{
    <szSymbol>    Name of symbol
    <bScope>      Scope of symbol
    <bLinkType>   Link type :
                  0 = NO_LINK (ie DATA symbol)
                  1 = FUNCTION* in .prg itself
                  2 = EXTERN. Link function pointer at run-time.
}
<ulFuncs>         Long containing the number of functions
{
    <szSymbol>    Name of function
    <ulLen>       Length of function
    <aPCode>      PCode of function
}

* Since the module name itself is a symbol during compilation. ProcName()
  was recognized as an internal function.
  During the run-time link the runner therefore checks whether the compiler
  has correctly identified a symbol as contained in .prg itself.
