The CMS library was restored to the x86 system using a backup save set with /verify. The library in question has also been verified on the x86 system with a $cms/verify as well.
This code does work on IA64 HPE Pascal I64 V6.1-123 on OpenVMS I64 V8.4, using CMS V4.7-00. I have no ability to test it on a VSI IA64 system.
On the x86 system, we are using the following: Pascal x86-64 X6.3-138 (50X6f) on OpenVMS x86-64 V9.2-1 & VSI X86VMS CMS V4.8-9.
I have stripped the code down to as simple as I can make it. One routine with a cms$set_library() and cms$fetch() call. The cms library is hardcoded as cmsrootdev:[source.build] and the file is called build.vot. I would assume any cms library and file will cause the error.
Rod
Code: Select all
program build (input, output);
type
varying_string = varying [132] of char;
cms_ldb_type = array [1..50] of integer;
[asynchronous, external]
function cms$set_library ( %ref lib_db : cms_ldb_type;
%descr libdir : varying [n] of char
): integer; external;
[asynchronous, external]
function cms$fetch( %ref ldb : cms_ldb_type;
%descr element : varying [i] of char;
%descr remark : varying [j] of char;
%descr generation : varying [k] of char;
%descr merge_gen : varying [l] of char;
%ref reserve : integer := %immed 0;
%ref nohistory : integer := %immed 0;
%ref nonotes : integer := %immed 0;
%ref concurrent : integer := %immed 0;
%descr output_file : varying [m] of char
) : integer; external;
type
user_enviroment_def = record
cms_class : varying_string;
cms_library : varying_string;
end;
var
user_envir : user_enviroment_def;
procedure get_file ;
const
file_name = 'BUILD.VOT';
var
vms_status : integer;
cms_ldb : cms_ldb_type;
begin
vms_status := cms$set_library(cms_ldb,
user_envir.cms_library );
if odd( vms_status) then
cms$fetch( cms_ldb,
file_name,
%immed 0, (* no remark *)
user_envir.cms_class,
%immed 0, (* no merge generation *)
%immed 0, (* no reservation *)
%immed 0, (* no history *)
%immed 0, (* no notes *)
%immed 0, (* no concurrent *)
file_name );
if not odd(vms_status) then
writeln( vms_status:1 );
end;
begin
user_envir.cms_class := '';
user_envir.cms_library := 'CMSROOTDEV:[SOURCE.CMS]';
get_file;
end.