[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