On 7/11/2024 9:55 AM, David Meyer wrote:
(I posted about this on the VSI forums, but am posting here in case
there are any old VMS hackers hanging out only here.)
Does anyone have an code example of calling SYS$FAO in a BLISS program?
I'm trying to teach myself the language from old manuals and want a way
to print text and numeric data from programs to my terminal. I've found
the TUTIO package, but would like to know a method that also works in
batch mode. SYS$FAO looks like a useful way to format data into
character strings for output with LIB$PUT_OUTPUT, but I've so far only succeeded in printing blank lines, and can only find coding examples in
MACRO or FORTRAN.
You might take a look at my FREE utility, which displays disk block
usage summaries for mounted disks.
https://vms.process.com/scripts/fileserv/fileserv.com?FREE
It's written in BLISS and calls SYS$FAO (via the $FAO macro). It also
shows how to call $DEVICE_SCAN, LIB$PUT_OUTPUT, and $GETDVIW. It's a
much smaller program than my other BLISS packages that call it. This
isn't going to wrap correctly, but here's some sample output.
DECUServe$ run free
Device Name Volume Label Type Used Blocks Free Blocks
Total
---------------- -------------- ------ --------------- --------------- ---------
DSA0: ALPHASYS DKX00 15325103 (79%) 4206033 (21%)
19531136
DSA1: USER1 DKX00 3920423 (21%) 15610713 (79%)
19531136
DSA2: USER2 DKX00 11194730 (58%) 8336406 (42%)
19531136
[...]
Totals: 13 mounted disks 328010MB (77%) 101353MB (23%)
429363MB
Hunter
------
Hunter Goatley, Process Software,
https://www.process.com/ [email protected] https://hunter.goatley.com/
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)