adrian@mti.mti.com (Adrian McCarthy) (01/16/90)
Can somebody give me a clue on passing FAO (Formatted ASCII Output facility) string parameters when using the VMS MESSAGE facility in conjuction with LIB$SIGNAL via Pascal? I must have a mistake in the parameter passing. Here is TESTMSG.MSG: ------ .FACILITY TEST,1/PREFIX=TEST_ .SEVERITY INFORMATIONAL SYNTAX "This is a test." STRING "The string is: !AS."/FAO_COUNT=1 NUMBER "The number is: !SL."/FAO_COUNT=1 .END ------ Here is TEST.PAS: ------ [inherit('sys$library:pascal$lib_routines')] {This gets the lib$signal decl.} program test(input,output); var test_syntax : [external,value] integer; test_string : [external,value] integer; test_number : [external,value] integer; string : varying[100] of char := 'This is a test string.'; number : integer := 42; begin {The examples shown below are generated by uncommenting each of the following lines, one at a time:} (* lib$signal(test_syntax); lib$signal(test_string,1,iaddress(string.body)); lib$signal(test_number,1,number); *) end. ------ I compile with the following sequence: ------ $ message testmsg.msg $ pascal test.pas $ link test,testmsg ------ Here's what I get: ------ %TEST-I-SYNTAX, This is a test. %TEST-I-STRING, The string is: !AS. %TEST-I-NUMBER, The number is: 42. ------ The first and third cases work fine, but the second doesn't translate. I've tried passing IADDRESS(string), but that doesn't work either. Do I have to build a string descriptor of some sort? What's the trick? (I'm running VMS V5.1-1. MESSAGE 04-92, and Pascal V3.9-289.) E-mail, and I'll post result. Thanks in advance, Aid.