bas7advr.hlp (Topic list)
StringAddress Routine Details
  Syntax  Details  Example                 Contents  Index  Back
──────────────────────────────────────────────────────────────────────────────
The StringAddress routine is used in mixed-language programming. A
non-BASIC routine uses StringAddress to find the far address of a BASIC
variable-length string.
 
far-address = StringAddress(string-descriptor%);
    ■ The preceding syntax is for the C language.
    ■ For C, MASM, Pascal, and FORTRAN examples, see Chapter 13,
      "Mixed-Language Programming with Far Strings" in the Programmer's Guide.
 
Usage Notes
    ■ Calls to the StringAddress routine are always made from a non-BASIC
      routine to find the address of a string that was transferred to
      BASIC from the non-BASIC routine.
 
      ║ Note:  If you are not doing mixed-language programming, there is
      ║        usually no reason to use StringAddress. Within BASIC, you
      ║        can use SSEGADD to find the far address of a variable-length
      ║        string.
 
    ■ As an example, assume that you have passed a string from a MASM
      routine to BASIC's string space using StringAssign. The descriptor for
      the string exists at offset descriptor. MASM can find the far address
      of the string data by using the following code:
 
        .model
        extrn        stringaddress: far
 
        .code
        lea          ax, descriptor        ; offset of descriptor
        push         ax
        call         stringaddress
 
      The far address is returned in DX:AX. DX holds the segment and AX
      holds the offset.
    ■ For detailed instructions on mixed-language programming with strings,
      see Chapter 12, "Mixed-Language Programming" and Chapter 13,
      "Programming with Near Strings" in the Programmer's Guide.