[Info-vax] Error Messages in Basic - %BASIC-E-PARMODNOT, mode for parameter <n> of routine <procedure-name> not as declared
John Reagan
xyzzy1959 at gmail.com
Wed Jun 5 17:03:48 EDT 2019
On Wednesday, June 5, 2019 at 12:41:55 PM UTC-4, Craig Dedo wrote:
> On Tuesday, June 4, 2019 at 7:00:33 PM UTC-5, Stephen Hoffman wrote:
> > On 2019-06-04 22:07:50 +0000, Craig Dedo said:
> >
> > I'll assume some combination of the following exists in the source code...
> >
> > %include "starlet" %from %library
> > "sys$library:basic$starlet" ! System Services declarations
> > %include "$ssdef" %from %library
> > "sys$library:basic$starlet" ! condition codes
> > %include "lib$routines" %from %library
> > "sys$library:basic$starlet" ! LIBRTL routines
> >
> > > When trying to use the OpenVMS Run Time Library procedures...
> > > Declare Quad End_of_Month_Date_Time_gq
> >
> > Check the declarations and—if this is the problem I think it is—try
> > declaring each of the associated variables as...
> >
> > BASIC$QUADWORD End_of_Month_Date_Time_gq
> >
> > Previous:
> > https://mail.encompasserve.org/anon/htnotes/note?f1=VMS&f2=2912.30
> >
> > Posting a standalone reproducer can help with these, too.
> >
> >
> > --
> > Pure Personal Opinion | HoffmanLabs LLC
>
>
> Hi Steve:
> You found the solution to my problem. I replaced this:
> Declare Quad End_of_Month_Date_Time_gq
> with:
> Declare BASIC$QUADWORD End_of_Month_Date_Time_gq
>
> The problem disappeared when I called the procedures LIB$CONVERT_DATE_STRING() and LIB$DAY_OF_WEEK().
>
> As Duncan Morris suggested, the compiler and Run Time Library do not consider BASIC$QUADWORD to be the same as Quad.
>
> FWIW, on your other point, yes, I did include several modules of the Run Time Library (LIB$) and System Services Library (SYS$) definitions and procedure interfaces. Here is what I included:
> %INCLUDE "$LIBDEF" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET.TLB"
> %INCLUDE "$LIBDTDEF" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET.TLB"
> %INCLUDE "LIB$ROUTINES" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET.TLB"
> %INCLUDE "$SSDEF" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET.TLB"
> %INCLUDE "STARLET" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET.TLB"
>
> Sincerely,
> Craig T. Dedo, OpenVMS Software Development Consultant
> Navistar, Inc.
> 2701 Navistar Drive
> Lisle, IL 60532-3637
> E-mail: firstname.lastname at domain dot com
> Domain: Navistar
The BASIC$QUADWORD stuff is in STARLET.BAS to cover VAX systems as well. I've never been in that part of the compiler, but perhaps it should try to special case some sort of assignment-compatibility between QUAD and BASIC$QUADWORD?
I'll add this thread to our BASIC list for either a release note, example, or compiler change.
More information about the Info-vax
mailing list