<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>