1752600 Members
4563 Online
108788 Solutions
New Discussion юеВ

Re: F$FAO tutorial

 
Wim Van den Wyngaert
Honored Contributor

F$FAO tutorial

I'm disapointed with what I read in the manuals.

Is there a GOOD, FREE f$fao tutorial on the net ? That explains ALL options.

BTW : why are the !DD directive interpreted correctly only when DD is in uppercase ?

Wim
Wim
5 REPLIES 5
Hein van den Heuvel
Honored Contributor

Re: F$FAO tutorial



Wim,

May we assume you read the full description in the system service reference manual?

http://h71000.www7.hp.com/doc/732FINAL/4527/4527pro_003.html#ssr_fao_directives

That page also has a big fat NOTE saying:

" When the characters of the $FAO directive are alphabetic, they must be uppercase. "


hth,
Hein.
Wim Van den Wyngaert
Honored Contributor

Re: F$FAO tutorial

Hein,

Sorry but I mean the lexical. But will take a look at the system service too.

I know the note but I don't know why this was done. Programmer power ? To be compatible ?

Wim
Wim
Wim Van den Wyngaert
Honored Contributor

Re: F$FAO tutorial

What I was asking myself is what are all the converts about in DCL. I understand that in a program you can convert the *words but in DCL ?

Wim
Wim
Hoff
Honored Contributor

Re: F$FAO tutorial

f$fao is a jacket call around the sys$fao system service -- it's little more than a way for DCL to get at this system service. System service directives and such related to pointers (and to indirection) didn't make it up through to DCL and its documentation because DCL doesn't "do" pointers, but the rest of f$fao is that of sys$fao. And indirection does work, if you know the virtual address of what you're looking to format.

There are a number of lexical functions that are jackets. Which means you end up looking at the system service description.

As for on-line DCL resources, start here: http://www.kgbreport.com/dcl.html
Kevin Barkes wrote a series of articles on DCL a decade back, and they're now posted. And there's the Writing Real Programs in DCL, 2nd ed., book that I wrote; it's out of print and apparently still popular; locating a copy probably won't meet your "free" requirement.


Hein van den Heuvel
Honored Contributor

Re: F$FAO tutorial

Wim,

>> Is there a GOOD, FREE f$fao tutorial on the net ? That explains ALL options.

Yes, the system service reference manual, and the dcl help. No more no less.

F$FAO is just a 10 line shell around SYS$FAO.
No added value other then figuring out whether to pass the variable by descriptor or by reference based on whether is was a string or an integer.
As you suspect, several conversion are thus of little or no value or require trickery to get to. The DCL help appropriatly omits those. Really the only one of those omitted which has been put to good mis-use is the !AD as a round-about way to get a binary date argument passed.


>>why are the !DD directive interpreted correctly only when DD is in uppercase ?

Why not? This stuff was written 20+ (30!) years ago when every byte counted, even just a bit-clear. The module has only been touched (10+ years ago) for 64 bit support. It is easier, cheaper, to program for uppercase only, back than and now still. And it marginally enhances the readability of the control strong for humanoids IMHO.
For SYS$FAO there is clearly no end user usage, just system programmers, so why not just uppercase.
For F$FAO the lower case is slightly more desirable (I know I have done this wrong accidently), but for DCL to fix it, it woudl have a hard time parsing the control string to find out what to uppercase.

[Je zegt wellicht... het gemak dienst de mens, maar ik vind in dit geval uppercase een heel redelijke eis)

>> I understand that in a program you can convert the *words but in DCL ?

They are just not useful, but so what?
Too much work and no reason (imho) to explicitly prohibit them from a control string to DCL.

Groet,
Hein.