Oh, I could certainly get bit 4 if I didn't do the decode properly (likely) or bumped into a bug (less likely).  You know, got it ...wrong...

Meanwhile, I just wanted to make absolutely certain that I have my RSX bits straight. IF reserved bit 4 were defined as, say, HF.RSV, would it be like the below?  Is this table correct?

DAP
Bit
RSX
Symbol
PDP-11
Octal
Comment
0 HF.STR 1 Stream ID bit in DAP header menu
1 HF.LEN 2 Length bit in DAP header menu
2 HF.XLN 4 Extended length bit in DAP header menu
3 HF.BIT 10 BITCNT bit in DAP header menu
4 HF.RSV 20 Reserved
5 HF.SYS 40 System specific field bit in DAP header menu
6 HF.SEG 100 Segmented msg bit in DAP header menu 

I think what RSX is doing sounds completely straightforward and proper.  I don't suppose there is anything that could decide to play with the flags byte downstream?

It's possible that I'm dumping flags in a message that doesn't have any flags.  It looks like DAP allows this.  On page 17, one finds
DAP messages can be truncated up to the  point
of  leaving  only  the TYPE field provided the
fields truncated are  not  needed  or  can  be
defaulted.   This  is particularly useful with
the Acknowledge Message which reduces the  ACK
to a one byte message.

so I'll see if I'm respecting that.

On 11/29/22 7:42 PM, Johnny Billquist wrote:

I was reading through the code that creates the DAP message, and it starts off with clearing the byte, then it checks if the system supports multiple streams, and if so sets bit 0. Then it checks if a length should be included, and if so, bit 1 is set, and if the length is >255, then bit 2 is also set.

And that is literally all that is done to the flags byte. So I can't see how you would get a message from MIM where bit 4 is set.

  Johnny

On 2022-11-30 01:37, Thomas DeBellis wrote:

Hum...  Let me noodle over that for a bit.

I think it's a completely reasonable position to assume that I've a mistake, wrong assumption or am using something in such a way that it does not want to be used...  After all, the code is brand new; just written, Etc.

I'll have to put some more instrumentation in, Etc, Etc.

I don't imagine there is anything clever about MIM::DU1:[DECNET]TEST.DIS;1? Don't see why there would be...

------------------------------------------------------------------------

On 11/29/22 7:09 PM, Johnny Billquist wrote:

What I can tell is what I can see in the sources. And there I have this:


        HF.STR=001              ; Stream ID bit in DAP header menu
        HF.LEN=002              ; Length bit in DAP header menu
        HF.XLN=004              ; Extended length bit in DAP header menu
        HF.BIT=010              ; BITCNT bit in DAP header menu
        HF.SYS=040              ; System specific field bit in DAP header menu
        HF.SEG=100              ; Segmented msg bit in DAP header menu

HT.BIT is the thing you are seeing which is not there in the DAP 5.6 spec. I don't really know what it is about, but it's something the RSX DAP have defined anyway.

I can't find any use of it. Looking in the code, I don't even see that it would ever be set. So I wonder if you made some mistake in your decoding?

  Johnny
------------------------------------------------------------------------

On 2022-11-29 18:41, Thomas DeBellis wrote:

I fixed the bit definition for Not Last Message of Segmented Message from bit 4 to 6 as per DAP V5.6 and properly defined bit 4 as the Reserved field.  In other words, I am following Tops-10, which I believe to have the correct definitions. Then I finished the flag breakout logic and tested again some systems.  The MIM:: result is of note, viz.:

[Parsing Name message] [Parsing Attributes message] [Allocated Receive buffer (Words=531. Len=2086.)] [Trimmed 381. words from receive buffer] [Received Date/time Attributes message (Flg=*RESV*,SYSPEC UFlg=1000 Cnt=560.)] [Parsing Date/time Attributes message] [Parsing File Protection Attributes message] [Parsing Name message] TEST.DIS;1;P775656 2 2560(8) 18-Nov-2013 01:18:27
So what's up with *RESV*? Is (reserved) bit 4 being used for something new (I.E., post DAP 5.6) now?  If so, what?  The UFlg is an octal field for bits that I don't know about.  In this case, MIM:: is sending bit 9 high, which the PDP-10 (which is the opposite endian) sees as bit 26.  What's that?

Just wondering if I'm seeing what I'm seeing here...
------------------------------------------------------------------------
On 11/27/22 12:34 AM, Thomas DeBellis wrote:

Whoops, I mistyped the PDP-10 bit definition for bit six; it's 1B*29* and not 1B/28/.  Sigh...

  DAP
    Bit     Bit Meaning     PDP-10
    Bit     Tops-20
    DAP Symbol
    0     Stream Identification Field Present 1B35     HD$SID
    1     Length Field Present     1B34     HD$LEN
    2     Extended Length Field Present     1B33 HD$LN2
    3     Bit Count Field Present     1B32     HD$BCT
    4     Reserved     1B31     HD$SEG
    5     System Specific Field Present     1B30
    6     Not last message of segmented message 1B29

I looked the Tops-10 DAP flags definitions (in SWIL.MAC); it looks like Tops-10 has it right and Tops-20 has it wrong, viz:

    DAP
    Bit     Bit Meaning     PDP-10
    Bit     Tops-20
    DAP Symbol
    0     Stream ID field present     1B35     DF$SID
    1     LENGTH field present     1B34     DF$HLN
    2     LEN256 field present     1B33     DF$HL2
    3     BITCNT field present     1B32     DF$BCT
    *4*     *Reserved*     *1B31*     *DF$XX1*
    5     SYSPEC field present     1B30     DF$SHX
    *6*     *More data coming*     *1B29* *DF$MOR*

Johnny, can you send me the RSX DAP flag definitions when you get a minute?
------------------------------------------------------------------------
On 11/26/22 11:58 PM, Thomas DeBellis wrote:

I was writing a routine to break out DAP flag bits to aid debugging when I noticed a possible discrepancy between DAP V5.6 and Tops-20, viz:

    DAP
    Bit     Bit Meaning     PDP-10
    Bit     Tops-20
    DAP Symbol
    0     Stream Identification Field Present 1B35     HD$SID
    1     Length Field Present     1B34     HD$LEN
    2     Extended Length Field Present 1B33     HD$LN2
    3     Bit Count Field Present     1B32 HD$BCT
    4     Reserved     1B31     HD$SEG
    5     System Specific Field Present 1B30
    6     Not last message of segmented message 1B28

DAP V5.6 reserves bit 4 and defines bit 6 to flag that a segmented message is being sent and that this is not the last message.  In other words, that there will be another message. Tops-20 is using bit 4 for this purpose and by rights it would appear that it should be using bit 6.

I will go see if I can't scare up what Tops-10 is doing, but I was wondering if anyone knew what other OS's are doing.