<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>I understand your point here and you are--of course--correct, yet
      one hesitates to term Tops-20 (TWENEX ) paging as being a variant
      of the BBN pager (or better TENEX).<br>
    </p>
    <div class="moz-cite-prefix">The BBN pager was <i>far</i> more
      capable then the both the KI and KL pagers.  The KL pager was more
      capable than the KI, but this didn't put it quite in the same
      league as the BBN pager in terms of functionality.</div>
    <div class="moz-cite-prefix">
      <p>This is most visible in what <font size="4" face="monospace">RPACS%</font>
        (Read PAge ACess) returns (or fails to return) and what <font
          size="4"><tt>SPACS%</tt></font> (Set PAge ACess) does (or
        fails to do).  On the KL, the only access bit you can set is
        whether the page is writable (this includes Copy-On-Write).  You
        cannot:</p>
      <ol>
        <li>Clear all bits and thus set a page 'No Access'; it will
          still be there</li>
        <li>Set a page Write-only</li>
        <li>Set a page Execute-Only<br>
        </li>
      </ol>
      <p>Case 1. is necessary for implementing guard pages which are
        (IMHO) one of the very most effective hardware based debugging
        tools around.  You really want "Explode on Reference" to catch
        stray reads AND stores.  If you whack the page, then all that
        happens the next time you touch it is it 're-materializes'.</p>
      <p>Case 2 is great for increasing the security of certain
        communications paradigms.</p>
      <p>For 1., you can solve it in two convoluted ways. First, you can
        hook the page creation interrupt and determine whether you are
        creating something you ought not.  You can also actually
        implement "Explode on Reference" by mapping 1+ the last page of
        a locked file.  If you then try to touch that page, it will fail
        because creating the page in memory involves creating it in the
        (locked) backing store.  I discovered this by mistake when
        looking for a guard page implementation for my FTP server.</p>
      <p>2. Has no real solution, but paged mode IPCF% is probably good
        enough.</p>
      <p>3. is partly solved by setting the file execute only, but this
        is highly restricted and does not work if a program is
        multi-process (I.E., forks).  Thus, I can not use it in the FTP
        server nor can it be used in the Tops-20 TELNET client.<br>
      </p>
      <p>BBN repeatedly tried to get DEC to take their pager, but DEC
        never went for it.  I don't remember what was designed for the
        Jupiter or was implemented for the SC-40 or TOAD.
      </p>
    </div>
    <blockquote type="cite"
      cite="mid:005801d7c48d$8f124110$ad36c330$@com">
      <hr width="100%" size="2">
      <pre class="moz-quote-pre" wrap="">On 10/18/21 10:03 PM, Robert Armstrong wrote:

<blockquote type="cite"><pre class="moz-quote-pre" wrap=""><pre class="moz-quote-pre" wrap="">T10 in the last incarnation(s) could use the KL10 paging
</pre></pre></blockquote>
  Umm..  TOPS-10 could always use the "KL10 paging".  TOPS10 ran on the KL from day 1.

  The thing is, the KL had different microcode for TOPS-10 paging and TOPS-20 paging.  The hardware didn't change.  TOPS-10 paging was the same as the KL10 paging, which was implemented in hardware.  TOPS-20 paging (or rather, TWENEX paging) was some variant of the BBN pager that was originally attached to a KA10 way back when.

Bob
</pre>
    </blockquote>
  </body>
</html>