Oh.  Don't be surprised.

When I write protected what would be GLXLIB's high segment on Tops-20, the only way to do this is with .PSECT's, but GLXLIB makes a lot of assumptions about addresses.  On Tops-10, the GLXLIB high segment is write protected, and I think that is the right thing to do for all executable code.  I also moved GLXLIB as high as i could in the address space to allow GLXMEM on DAP's behalf to snarf really huge chunks of memory, which get filled up on large directory responses.  This is the default GLXLIB memory address space lay out:

  Section 0    R, W, E,  Private
0           TOMMYT:<SUBSYS>GLXLIB.EXE.5  1   R, CW, E
400-432     TOMMYT:<SUBSYS>GLXLIB.EXE.5  2-34   R, CW, E

Tops-10 fans will note that page 400 is the historic address of the high segment and this dates back to KA days.  I think that was just a convention and that it could be different, but I don't remember.  Bob?  This is the new layout:

  Section 0    R, W, E,  Private
0           STAR:<GALAXY-SOURCES.GLXLIB>GLXLIB.EXE.92  1   R, CW, E
637-673     STAR:<GALAXY-SOURCES.GLXLIB>GLXLIB.EXE.92  2-36   R, E

Note that GLXLIB is much higher--in fact, it is as high as it can go before bumping into DDT (if DDT is in the same section).  It is also write-protected.

Another reason I did this was to see what kind of bugs it would shake out and I've gotten a few, which is the reason for the two pages of added code (28 pages to 30, a big whopping 15K ...)  I also lifted some nifty stuff from Tops-10 GLXLIB; the sources diverged.


On 11/22/22 4:54 AM, Johnny Billquist wrote:
On 2022-11-22 06:18, Thomas DeBellis wrote:
------------------------------------------------------------------------
On 11/21/22 5:47 PM, John Forecast wrote:

I wanted to quickly find out how much, if  any, code was dependent on the OS type. One other area of incompatibility is that TOPS-10 and the Linux dndir require a DAP-level ACK after the attributes during directory listings.

Johnny and I did a lot of work and testing to get Tops-20 DAP/FAL to perform better.  Some were Tops-20, others not.  One Tops-20 bug was that an eight bit file would cause a directory listing to stop.  My favorite RSX issue was that it wants UPPERcase month names; I fixed that by UPPERcasing the result of ODTIM%. I can't remember what Johnny did (if anything).

I didn't do anything. And the uppercase month names are what the protocol specification states. RSX was just following the spec.

I don’t know. I think several people were talking about making a system available.

Well, when if one is ever available on HECnet, I'll be /delighted/ to test against it.

Meanwhile, now that I am finally able to assemble and LINK a working NFT and FAL and have fixed the incorrect OS type number issue, I bumped into another problem.  Naturally, it's doing directories.  When doing an ANONYMOUS directory of MIM:: (I.E., DIR MIM::*.*), I got:

    MIM::DU1:[DECNET]

    ....

    [Parsing Name message]
    [Parsing Attributes message]
    [Parsing Date/time Attributes message]
    [Parsing File Protection Attributes message]
    [Parsing Name message]
    DTRCOM.LST;115;P775656          10 18944(8)   24-Oct-2021 15:06:46
    [Parsing Name message]
    [Allocated Receive buffer (Words=225 Len=1056)]
    ?Logical link reception error - Record is longer than user requested
    Logical link abort reason(0) - No error

So it died on whatever the file is that follows MIM::DU1:[DECNET]DTRCOM.LST;115

Sigh...

The next file in the directory is DTRCOM.MAP, which is a file that is a bit more odd. But I'm surprised that TOPS-20 would barf on this.

.dsp [decnet]dtrcom.map

DU1:[DECNET]DTRCOM.MAP;84
                        Size:    47./47.         Created: 24-OCT-2021 15:06
                        Owner:   [007,014]       Revised: 24-OCT-2021 15:06
                        File ID: (17262,10,0)    Expires: <none_specified>
  File protection:      System:RWED, Owner:RWED, Group:R, World:R
  File organization:    Sequential
  File attributes:      Allocation=47, Extend=0
  Record format:        Variable length, no maximum defined
  Record attributes:    None

Compared to the .LST file:

.dsp [decnet]dtrcom.lst

DU1:[DECNET]DTRCOM.LST;115
                        Size:    37./37.         Created: 24-OCT-2021 15:06
                        Owner:   [007,014]       Revised: 24-OCT-2021 15:06
                        File ID: (17260,106,0)   Expires: <none_specified>
  File protection:      System:RWED, Owner:RWED, Group:R, World:R
  File organization:    Sequential
  File attributes:      Allocation=37, Extend=0
  Record format:        Variable length, no maximum defined
  Record attributes:    Carriage return

  Johnny