<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><a class="moz-txt-link-freetext" href="https://www.ijs.si/software/snprintf/">https://www.ijs.si/software/snprintf/</a><br>
    </p>
    <pre class="moz-signature" cols="72">
</pre>
    <div class="moz-cite-prefix">On 07-Dec-17 18:22, Jordi Guillaumes
      Pons wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:94E86E9D-93DD-4C18-A7AC-8050B733411B@jordi.guillaumes.name">This:<br
        class="">
      <br class="">
      <font class="" face="Monaco">[BITXOV]$ mcr pdp8<br class="">
        <br class="">
        PDP-8 simulator V4.0-0 Beta        git commit id: f1f8c855<br
          class="">
        pdp8.ini-9> attach lpt printer.txt<br class="">
        LPT: creating new file<br class="">
        pdp8.ini-32> attach ttix 8888<br class="">
        $JOBening on port 8888<br class="">
        <br class="">
        $MSG *** DEFINING LOGICALS ***<br class="">
        <br class="">
        WELCOME TO OS/8<br class="">
        <br class="">
        DEFINED LOGICALS:<br class="">
        <br class="">
        - FOCAL: RKA1: (FOCAL EXAMPLES AND BINARIES)<br class="">
        - GAMES: RKB1: (BASIC GAMES)<br class="">
        - DSK:   RKB0: (USER PARTITION)<br class="">
        - SYS:   RKA0: (SYSTEM PARTITION)<br class="">
        <br class="">
        <br class="">
        #END BATCH<br class="">
        <br class="">
        .DIR<br class="">
        <br class="">
        <br class="">
        <br class="">
        ISS   .DA   1           START .BK   1           MODUL .RL   2<br
          class="">
        VECSUB.FT   2           BASIC .WS  21           VECSUB.LS   2<br
          class="">
        VECMUL.FT   1           PASCAL.PA 364           VECSUB.RL   2<br
          class="">
        VECINV.FT   1           ORB   .LD   9           VECINV.LS   2<br
          class="">
        GRAVF .FT   2           HELPA .PS   1           VECINV.RL   2<br
          class="">
        MODUL .FT   1           BUBBLE.PS   4           VECMUL.LS   2<br
          class="">
        TEST  .BA   1           ORB   .LS   8           VECMUL.RL   2<br
          class="">
        EARTH .DA   1           ORB   .RL   5           ORB   .MP   2<br
          class="">
        ORB   .FT   7           GRAVF .LS   3           OUT   .LS 185<br
          class="">
        RUNORB.BI   1           GRAVF .RL   2           START .BI   1<br
          class="">
        INIT  .CM   1           MODUL .LS   2           MESSAG.TX   1<br
          class="">
        <br class="">
          33 FILES IN  642 BLOCKS - 2599 FREE BLOCKS<br class="">
        <br class="">
        .COMPILE ORB,ORB<ORB.FT<br class="">
                                     <br class="">
        sim> show ver<br class="">
        PDP-8 simulator V4.0-0 Beta<br class="">
            Simulator Framework Capabilities:<br class="">
                32b data<br class="">
                32b addresses<br class="">
                no Ethernet<br class="">
                Idle/Throttling support is available<br class="">
            Host Platform:<br class="">
                Compiler: DEC C V6.4-005<br class="">
                Simulator Compiled as C on Dec  7 2017 at 23:50:20<br
          class="">
                Memory Access: Little Endian<br class="">
                Memory Pointer Size: 32 bits<br class="">
                No Large File support<br class="">
                SDL Video support: No Video Support<br class="">
                No RegEx support for EXPECT commands<br class="">
                OS clock resolution: 10ms<br class="">
                Time taken by msleep(1): 10ms<br class="">
                OS: OpenVMS VAX V7.3<br class="">
                git commit id: f1f8c855       </font><br class="">
      <br class="">
      <br class="">
      Yep, it’s OS/8 running on simh’ PDP-8  running on VAX/VMS 7.3
      running on simh MicroVAX 3900 :) Slow as hell (the VAX is running
      on an ARM based SoC) but it works.
      <div class=""><br class="">
      </div>
      <div class="">Does it compile out of the box? I’m afraid not.</div>
      <div class=""><br class="">
      </div>
      <div class="">Things I had to do to compile the PDP8 simulator:</div>
      <div class=""><br class="">
      </div>
      <div class="">- Add /MACRO=“CC_DEFS=__VAX” to the MMS command
        line. It looks the CC_DEFS macro gets emptied somehow and then
        the compiler complains because it does not like /DEF=()</div>
      <div class="">- Hacked a fast and dirty version of snprintf (which
        simply ignores the “n” part), since that routine is not in the
        DECC RTL. Oh, those were the times. This is the routine:</div>
      <div class=""><br class="">
      </div>
      <div class="">
        <div class=""><font class="" face="Monaco">#include
            <stdio.h></font></div>
        <div class=""><font class="" face="Monaco">#include
            <varargs.h></font></div>
        <div class=""><font class="" face="Monaco"><br class="">
          </font></div>
        <div class=""><font class="" face="Monaco">int snprintf
            (va_alist)</font></div>
        <div class=""><font class="" face="Monaco">va_dcl</font></div>
        <div class=""><font class="" face="Monaco">{</font></div>
        <div class=""><font class="" face="Monaco">    char *buffer;</font></div>
        <div class=""><font class="" face="Monaco">    int size;</font></div>
        <div class=""><font class="" face="Monaco">    char *format;</font></div>
        <div class=""><font class="" face="Monaco">    va_list p;</font></div>
        <div class=""><font class="" face="Monaco">    va_start(p);</font></div>
        <div class=""><font class="" face="Monaco"><br class="">
          </font></div>
        <div class=""><font class="" face="Monaco">    buffer =
            va_arg(p, char*);</font></div>
        <div class=""><font class="" face="Monaco">    size = va_arg(p,
            int);</font></div>
        <div class=""><font class="" face="Monaco">    format =
            va_arg(p, char*);</font></div>
        <div class=""><font class="" face="Monaco"><br class="">
          </font></div>
        <div class=""><font class="" face="Monaco">    return
            sprintf(buffer, format, p);</font></div>
        <div class=""><font class="" face="Monaco">}                    
                   </font></div>
        <br class="">
        Compile it with the /DECC/NAMES=AS_IS qualifiers and insert it
        into the [.BIN.VMS.LIB]simh-nonet-.olb library and the
        compilation should end without problems. </div>
      <div class=""><br class="">
      </div>
      <div class="">And voilà! You’ll have a PDP-8 simulator running
        under a VAX simulator in your machine of choice.</div>
      <div class=""><br class="">
      </div>
      <div class="">Or, you can also run it on real VAX hardware… :)</div>
      <div class=""><br class="">
        <br class="">
        <br class="">
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Simh mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Simh@trailing-edge.com">Simh@trailing-edge.com</a>
<a class="moz-txt-link-freetext" href="http://mailman.trailing-edge.com/mailman/listinfo/simh">http://mailman.trailing-edge.com/mailman/listinfo/simh</a></pre>
    </blockquote>
    <br>
  </body>
</html>