<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Yes, Ange-ftp is mode is a bit annoying; particularly since each
      new version of Emacs seems to manage to break it in new and
      interesting ways.  I'm still trying to fix an infinite recursion
      bug in the version I have on the Mac.  Why use it?  Why <b><font
          size="+1"><tt><font color="#0432ff">c</font></tt><tt><font
              color="#ff9200">o</font></tt><tt><font color="#00f900">l</font></tt><tt><font
              color="#ff40ff">o</font></tt><tt>r</tt><font
            color="#ff2600"><tt>s</tt></font></font></b> (in other
      words, font-lock mode) and memory.<br>
    </p>
    <p>As you may be aware, the EMACS under Tops-20 is TECO based, the
      TECO being written in an assembler dialect called MIDAS which will
      emit code for ITS, TENEX and Tops-20.  It is a pre-extended model,
      which means you are 'limited' to a single section of 256K, which
      is something like 1.25 megabytes, depending on how you slice it.</p>
    <p>If you are programming assembler, that is an awful lot of space
      before you have to resort to overlays.  It's a decent amount of
      data.  The text of whole novels will easily fit as (7 bit) ASCII;
      I have several from Project Gutenberg.  Where you start to run out
      of memory is commonly with multi-media and if you're me.   It's
      not unusual for me to have 16 files open, flipping between them. 
      On TECO based Emacs, you can run out of memory.  Not so 64 bit
      gnuemacs; it just keeps going and going.  This was a major driver
      for the FTP server rewrite.<br>
    </p>
    <p>The PDP-10 memory architecture had an enhancement done in the
      early 70's to support extended memory, which provided an
      additional 4,095 sections of virtual memory or about 5 GB total. 
      In the 80's, that was known as incomprehensible, 20 years ago,
      perfectly adequate and today, well...  Unless you are talking HD
      video, 5 GB is reasonable for many applications, including editing
      NTSC and PAL video.</p>
    <p>At the time, a colleague and I were considering rewriting TECO in
      MACRO to gain the advantage of that memory paradigm. 
      Unfortunately, the university switched off of the (cancelled) 36
      bit line to Unix.  First Digital Unix on a VAX 8650, the 8700 and
      then Sun SPARC machines.  They never trusted DEC again.</p>
    <p>gnuemacs has been ported to Tops-20, so there is even less reason
      to do it now, but I didn't know that ten years ago when I started
      as a hobbyist.</p>
    <p>Another reason was that I wasn't getting the performance I wanted
      out of the TENEX based FTP server.  I worked with it for about 6
      months until I was advised that it would be better to just pitch
      it.  The new server easily gets over 6.5 Mbps, whereas the old one
      could barely get into the high KB/s.  I eventually figured out
      why, but I don't think the old one could be made this fast.</p>
    <p>The final reason was that I just kept getting annoyed that
      'modern' graphical FTP clients had no idea of what the 20 was
      returning.  And if you know me, when it comes to computers, it
      doesn't take much to get me really annoyed.  I couldn't believe
      the junk I was getting over the control channel.  Lots of commands
      that are not in any RFC.  Looking at other FTP servers didn't help
      either; they were hopelessly broken.</p>
    <p>But now I can fool all but the very most brain damaged graphical
      FTP clients (unfortunately I happen to have one on my iPhone). 
      Character mode FTP clients were easy.</p>
    <p>I'm actually thinking of implementing FTP over DECnet; the
      performance (in terms of processor utilization) would easily
      exceed DAP.  And it would be my kind of fun.<br>
    </p>
    <blockquote type="cite"
      cite="mid:edbb5be5-0aa6-c661-ccc3-d2bd1557e9a9@softjar.se">
      <hr width="100%" size="2">On 12/21/19 5:02 AM, Johnny Billquist
      wrote:<br>
      <br>
      Aha. Thanks. I have never tested that one. I always find even the
      mode extremely annoying...
      <br>
      <br>
      Thanks. Yes, TVFS was what I was trying to remember. Yes, it is
      annoying, and some clients goes and dies immediately if they don't
      get information in that silly format. I implemented it for RSX,
      and trigger it when a client does a "cwd /", since most such
      clients also does that first of all.
      <br>
      <br>
      That sounds way too complicated. I don't think any specific
      feature or detail in my RSX servers ever have taken more than a
      day or two to implement. But I do feel that some things are silly.
      <br>
      <br>
      But I should also admit that I've only implemented things I felt I
      needed, so I've skipped some stuff which supposedly is mandatory.
      Noone complained (yet).
      <br>
      <br>
        Johnny
      <br>
      <blockquote type="cite">
        <hr width="100%" size="2">On 2019-12-21 02:58, Thomas DeBellis
        wrote:
        <ol>
          <li> The client that does the ls is gnuemacs ange-ftp mode;
            which was 
            quite shocking.
          </li>
          <li> Trivial Virtual File System (TVFS) is the RFC that
            specifies a
            common syntax, essentially codifying Unix syntax.  That's
            unfortunate because when you blow away most of the
            punctuation, you 
            limit your search abilities.
          </li>
        </ol>
        "fun"?  Dear me...  Actually, what really drove me crazy was
        TENEX paged file structures; I was months getting that right.
        <br>
      </blockquote>
    </blockquote>
  </body>
</html>