HP OpenVMS Systems

ask the wizard
Content starts here

BASIC and RMS (XAB) Definitions?

» close window

The Question is:

We are using VAX BASIC 3.8 and DEC BASIC 1.3,
both on OpenVMS 7.2-1. I have found an ugly
difference in the BASIC$STARLET.TLB include
library. On the VAX all XAB records and const's
are declared in $XABDEF. On Alpha $XABDEF only
declares a part. The others are in $XAB...DEF,
where ... is the subtype, e.g. FHC, SUM ...
Is there a way to find out, at compile time,
on which platform (VAX or alpha) we are like
I do it in C:
#ifdef __ALPHA
I dumped out BASIC.EXE but did not find
anything that works like:
Do you have any suggestion how to solve the
problem, except using a %VARIANT compilation
passing the architecture type in the /VARIANT
BASIC parameter?

The Answer is :

  Use the Freeware SDL tool to generate your own definitions on OpenVMS VAX.
  BASIC on OpenVMS Alpha was changed to use SDL to generate its definitions,
  and this means there will be a variety of smaller XAB module definitions.
  As an alternate to conditional compilation or conditional DCL build
  scripts, you can use SDL/NOPARSE on modules from the definitions in
  STARLETSD.TLB, and create your own definition modules for OpenVMS VAX:
    $ lib sys$share:starletsd.tlb/extr=RMSUSR/out=x.x
    $ sdl/nopars/lang=basic x.x

answer written or last revised on ( 16-JUL-2001 )

» close window