<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Exact Position of DISUSER Field In SYSUAF in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078513#M43271</link>
    <description>Rob,&lt;BR /&gt;&lt;BR /&gt;see here for some FORTRAN example code:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://mvb.saic.com/freeware/freewarev40/pwd_update/src/pwd_update.for" target="_blank"&gt;http://mvb.saic.com/freeware/freewarev40/pwd_update/src/pwd_update.for&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Volker.</description>
    <pubDate>Wed, 07 Nov 2007 05:45:39 GMT</pubDate>
    <dc:creator>Volker Halle</dc:creator>
    <dc:date>2007-11-07T05:45:39Z</dc:date>
    <item>
      <title>Exact Position of DISUSER Field In SYSUAF</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078511#M43269</link>
      <description>Given the data available in the UAF070DEF module in SYS$COMMON:[SYSLIB]SYS$STARLET_C.TLB, can anyone help me to find the exact position and length of the DISUSER flag field (disacnt) in the record?&lt;BR /&gt;&lt;BR /&gt;I know accessing SYSUAF in this way is unsupported, but it's the only way I can get the information I need for a relatively minor program I'm writing.&lt;BR /&gt;&lt;BR /&gt;Thanks, Rob.</description>
      <pubDate>Wed, 07 Nov 2007 04:56:51 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078511#M43269</guid>
      <dc:creator>Robert Atkinson</dc:creator>
      <dc:date>2007-11-07T04:56:51Z</dc:date>
    </item>
    <item>
      <title>Re: Exact Position of DISUSER Field In SYSUAF</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078512#M43270</link>
      <description>Rob,&lt;BR /&gt;&lt;BR /&gt;the UAF070$L_FLAGS longword (byte offset 468.) contains the various flags bits.&lt;BR /&gt;&lt;BR /&gt;The UAF070$V_DISACNT flag is bit 4 in this longword or as a mask definition: UAI$M_DISACNT = %X'10'&lt;BR /&gt;&lt;BR /&gt;The above is from the BLISS module SYS$LIBRARY:STARLET.REQ&lt;BR /&gt;&lt;BR /&gt;Volker.</description>
      <pubDate>Wed, 07 Nov 2007 05:35:53 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078512#M43270</guid>
      <dc:creator>Volker Halle</dc:creator>
      <dc:date>2007-11-07T05:35:53Z</dc:date>
    </item>
    <item>
      <title>Re: Exact Position of DISUSER Field In SYSUAF</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078513#M43271</link>
      <description>Rob,&lt;BR /&gt;&lt;BR /&gt;see here for some FORTRAN example code:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://mvb.saic.com/freeware/freewarev40/pwd_update/src/pwd_update.for" target="_blank"&gt;http://mvb.saic.com/freeware/freewarev40/pwd_update/src/pwd_update.for&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Volker.</description>
      <pubDate>Wed, 07 Nov 2007 05:45:39 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078513#M43271</guid>
      <dc:creator>Volker Halle</dc:creator>
      <dc:date>2007-11-07T05:45:39Z</dc:date>
    </item>
    <item>
      <title>Re: Exact Position of DISUSER Field In SYSUAF</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078514#M43272</link>
      <description>Volker, if the flag exists as a bit mask inside a longword, can I get to it individually, or would I have to take the whole longword and work out the value of bit 4?&lt;BR /&gt;&lt;BR /&gt;Ideally, I'd like to do the eqivilent of f$extract with my programming language to get the disacnt field, and then translate it from an unsigned into something more legible.&lt;BR /&gt;&lt;BR /&gt;What is the length in bytes of an unsigned?&lt;BR /&gt;&lt;BR /&gt;Rob.</description>
      <pubDate>Wed, 07 Nov 2007 05:55:40 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078514#M43272</guid>
      <dc:creator>Robert Atkinson</dc:creator>
      <dc:date>2007-11-07T05:55:40Z</dc:date>
    </item>
    <item>
      <title>Re: Exact Position of DISUSER Field In SYSUAF</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078515#M43273</link>
      <description>Robert,&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt;Ideally, I'd like to do the eqivilent of f$extract with my programming language to get the disacnt field, and then translate it from an unsigned into something more legible.&lt;BR /&gt;&amp;lt;&amp;lt;&amp;lt;&lt;BR /&gt;&lt;BR /&gt;A general solution in DCL to do that:&lt;BR /&gt;use f$extract to extract exactly ONE longword, and&lt;BR /&gt; .AND. &lt;BR /&gt;that to the wished bit mask.&lt;BR /&gt;eg&lt;BR /&gt;$ disacnt = ( f$extract(468,8,UAF070$L_FLAGS) .AND. %X10 )&lt;BR /&gt;&lt;BR /&gt;Corresponding simailar syntax in other languages.&lt;BR /&gt;&lt;BR /&gt;hth&lt;BR /&gt;&lt;BR /&gt;Proost.&lt;BR /&gt;&lt;BR /&gt;Have one on me.&lt;BR /&gt;&lt;BR /&gt;jpe&lt;BR /&gt;</description>
      <pubDate>Wed, 07 Nov 2007 06:28:48 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078515#M43273</guid>
      <dc:creator>Jan van den Ende</dc:creator>
      <dc:date>2007-11-07T06:28:48Z</dc:date>
    </item>
    <item>
      <title>Re: Exact Position of DISUSER Field In SYSUAF</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078516#M43274</link>
      <description>Rob,&lt;BR /&gt;&lt;BR /&gt;here is a simple DCL example:&lt;BR /&gt;&lt;BR /&gt;$ open/read/share x sysuaf.dat ! copy of SYSUAF&lt;BR /&gt;$ read x line ! just read 1st record&lt;BR /&gt;$ close x&lt;BR /&gt;$ flags=f$extract(468,1,line) ! extract 1st byte of FLAGS&lt;BR /&gt;$ x=f$cvsi(4,1,flags) ! convert bit 4&lt;BR /&gt;$ sho sym x&lt;BR /&gt;  X = -1   Hex = FFFFFFFF  Octal = 37777777777&lt;BR /&gt;&lt;BR /&gt;If the first user record found in SYSUAF is not disusered, X will return as 0.&lt;BR /&gt;&lt;BR /&gt;Volker.</description>
      <pubDate>Wed, 07 Nov 2007 06:47:55 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078516#M43274</guid>
      <dc:creator>Volker Halle</dc:creator>
      <dc:date>2007-11-07T06:47:55Z</dc:date>
    </item>
    <item>
      <title>Re: Exact Position of DISUSER Field In SYSUAF</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078517#M43275</link>
      <description>Thanks Volker.&lt;BR /&gt;&lt;BR /&gt;Armed with the example you gave, I can now write the equivilent of f$cvui in my application (Vista 4GL) and be able to translate the flag to 1 or 0.&lt;BR /&gt;&lt;BR /&gt;Everyones help is much appreciated.&lt;BR /&gt;&lt;BR /&gt;Rob.</description>
      <pubDate>Wed, 07 Nov 2007 07:18:45 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078517#M43275</guid>
      <dc:creator>Robert Atkinson</dc:creator>
      <dc:date>2007-11-07T07:18:45Z</dc:date>
    </item>
    <item>
      <title>Re: Exact Position of DISUSER Field In SYSUAF</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078518#M43276</link>
      <description>&lt;BR /&gt;Hi Roberts,&lt;BR /&gt;&lt;BR /&gt;Thanks for mentioning the target language!&lt;BR /&gt;&lt;BR /&gt;For the benfit of future readers, allow me to point out that the right place to get account information is to call SYS$GETUAI. I still have hope that someday there will be an F$GETUAI, but it did not happen with 8.3. &lt;BR /&gt;So this 'vista' does not have an interface to SYS$GETUAI and that would be too hard to make? And it does have an (indexed) file interface huh?!&lt;BR /&gt;&lt;BR /&gt;Also for the benefit of future readers using DCL. One really should not (need not) grab the flags longword and then find the right bit. Just ask for the bit directly:&lt;BR /&gt;&lt;BR /&gt;$ libr/extr=$uaf070def/out=uafdef.mar sys$library:starlet.mlb&lt;BR /&gt;$ sea uafdef.mar flags,disacnt&lt;BR /&gt;$EQU    UAF070$L_FLAGS  468&lt;BR /&gt;$EQU    UAF070$V_DISACNT        4&lt;BR /&gt;$ open/read/share=write sysuaf&lt;BR /&gt;$ read/key="DEFAULT" sysuaf record&lt;BR /&gt;$ read/key="HEIN" sysuaf record&lt;BR /&gt;$ write sys$output f$cvui(468*8+4,1,record)&lt;BR /&gt;1&lt;BR /&gt;$ write sys$output f$cvsi(468*8+4,1,record)&lt;BR /&gt;-1&lt;BR /&gt;$ read/key="HEIN" x record&lt;BR /&gt;$ write sys$output f$cvsi(468*8+4,1,record)&lt;BR /&gt;0&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;Jan&amp;gt;&amp;gt; use f$extract to extract exactly ONE longword, and .AND. that to the wished bit mask.&lt;BR /&gt;eg&lt;BR /&gt;$ disacnt = ( f$extract(468,8,UAF070$L_FLAGS) .AND. %X10 )&lt;BR /&gt;&lt;BR /&gt;Actually.. a longword is, as you know, 4 bytes. No harm here, but asking for 8 byte could make you falll of the edge in some cases. But you knew that. Just a typo surely.&lt;BR /&gt;&lt;BR /&gt;Volker&amp;gt;$ flags=f$extract(468,1,line) ! extract 1st byte of FLAGS&lt;BR /&gt;$ x=f$cvsi(4,1,flags) ! convert bit 4&lt;BR /&gt;&lt;BR /&gt;Actually.. flags is, as you know, 4 bytes. No harm here, but asking for 1 byte is potentially confusing and assumes you just 'know' the intresting flag is in the low byte, and that you know the byte ordering. But you knew that. Just a typo surely, or maybe a 'clever' optimization, but it makes for a bad example.&lt;BR /&gt;&lt;BR /&gt;Cheers,&lt;BR /&gt;Hein.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 07 Nov 2007 08:39:28 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078518#M43276</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2007-11-07T08:39:28Z</dc:date>
    </item>
    <item>
      <title>Re: Exact Position of DISUSER Field In SYSUAF</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078519#M43277</link>
      <description>Although the Vista engine is written in 'C', it's basically an interpretted language using verbs like, FILE-READ, FILE-WRITE, LIST, PRINT, CLEAR, SORT, TOTAL, etc, ect.&lt;BR /&gt;&lt;BR /&gt;It does not allow the programmer to get to system service calls, or even the operating system, for that matter, so I need to read the file directly and convert the data into something usable.&lt;BR /&gt;&lt;BR /&gt;The hardest problem was knowing exactly where the data is, and how to access it in the right way (converting the byte into a bit mask).&lt;BR /&gt;&lt;BR /&gt;Rob.</description>
      <pubDate>Wed, 07 Nov 2007 08:45:43 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078519#M43277</guid>
      <dc:creator>Robert Atkinson</dc:creator>
      <dc:date>2007-11-07T08:45:43Z</dc:date>
    </item>
    <item>
      <title>Re: Exact Position of DISUSER Field In SYSUAF</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078520#M43278</link>
      <description>Re Hein:&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt;Jan&amp;gt;&amp;gt; use f$extract to extract exactly ONE longword, and .AND. that to the wished bit mask.&lt;BR /&gt;eg&lt;BR /&gt;$ disacnt = ( f$extract(468,8,UAF070$L_FLAGS) .AND. %X10 )&lt;BR /&gt;&lt;BR /&gt;Actually.. a longword is, as you know, 4 bytes. No harm here, but asking for 8 byte could make you falll of the edge in some cases. But you knew that. Just a typo surely.&lt;BR /&gt;&amp;lt;&amp;lt;&amp;lt;&lt;BR /&gt;&lt;BR /&gt;AAAAHGGG!!!!&lt;BR /&gt;&lt;BR /&gt;Did I really check what I wrote???&lt;BR /&gt;Good you pointed it out, it might well have worked as a rather bad example.&lt;BR /&gt;Makes one feel humble again :-(&lt;BR /&gt;&lt;BR /&gt;Proost.&lt;BR /&gt;&lt;BR /&gt;Have one on me.&lt;BR /&gt;&lt;BR /&gt;jpe</description>
      <pubDate>Thu, 08 Nov 2007 05:46:41 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078520#M43278</guid>
      <dc:creator>Jan van den Ende</dc:creator>
      <dc:date>2007-11-08T05:46:41Z</dc:date>
    </item>
    <item>
      <title>Re: Exact Position of DISUSER Field In SYSUAF</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078521#M43279</link>
      <description>Solution given by Volker.</description>
      <pubDate>Wed, 02 Dec 2009 14:31:27 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/exact-position-of-disuser-field-in-sysuaf/m-p/5078521#M43279</guid>
      <dc:creator>Robert Atkinson</dc:creator>
      <dc:date>2009-12-02T14:31:27Z</dc:date>
    </item>
  </channel>
</rss>

