<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Bryan<div class=""><br class=""></div><div class="">You need to install simh v4 from source on GitHub.</div><div class=""><br class=""></div><div class="">Go to <a href="https://github.com/simh/simh" class="">https://github.com/simh/simh</a></div><div class=""><br class=""></div><div class="">Download a source zip file using the download button on your host (or download and transfer to host as necessary)</div><div class=""><br class=""></div><div class="">unzip the source into a directory on your host.</div><div class=""><br class=""></div><div class="">you will need gcc and dev-tools on your host for the next bits:</div><div class=""><br class=""></div><div class="">cd simh (the director you unzipped simh into)</div><div class="">make pdp11</div><div class=""><br class=""></div><div class="">once done, the new binary is at simh/BIN/pdp11</div><div class=""><br class=""></div><div class="">You should now be able to execute pdp11 and use the new script commands.</div><div class=""><br class=""></div><div class="">Quentin</div><div class=""><br class=""></div><div><blockquote type="cite" class=""><div class="">On 18 Jan 2018, at 16:51, Bryan Davies <<a href="mailto:bryan.e.davies@gmail.com" class="">bryan.e.davies@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="gmail_default" style="font-size:small">Thanks.  I just tried sudo apt-get install simh and it tells me that I am on the latest version (3.8.1-5) .  Is there a newer one, and if so how do I install it?</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On 18 January 2018 at 16:47, Quentin North <span dir="ltr" class=""><<a href="mailto:quentin@quentin.org.uk" target="_blank" class="">quentin@quentin.org.uk</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="">Hi Bryan<div class=""><br class=""></div><div class="">You need to be on the latest SIMH for expect/send to work within SIMH scripts. Below is an example of how it can be used to boot an HP Access system, which has two processors that need to communicate with each other and it sets the date an time during the boot. Look in particular at the lines that say things like 'go until “EXPRESSION”’ and 'reply “REPLY"'. Hat tip to David Bryan for this script.</div><div class=""><br class=""></div><div class=""><div class="">;              2000 Access System Processor Execution Command File</div><div class="">;</div><div class="">;</div><div class="">; This command file loads the 2000 Access operating system into the System</div><div class="">; Processor.  It is invoked as follows:</div><div class="">;</div><div class="">;    hp2100 sp <cpu></div><div class="">;</div><div class="">; ...where <cpu> is "2100" or one of "21MX/21MX-E/1000-M/1000-E".</div><div class="">;</div><div class="">; As part of the system startup process, this file loads and runs the IOP using</div><div class="">; the "iop.sim" command file.  It also uses the "sleep" external command to</div><div class="">; provide proper synchronization.</div><div class="">; </div><div class="">; The <cpu> parameter determines both the CPU setting and the IOP tape used to</div><div class="">; load the I/O Processor.  If "2100" is specified, then the 2100 CPU and 2100</div><div class="">; IOP tape are used.  If anything else is specified, then the 21MX IOP tape is</div><div class="">; used, and the CPU is set to the parameter verbatim.</div><div class="">; </div><div class="">; This file boots the system stored on the "ACCESS-<cpu>.7905.disc" image.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Validate the processor parameter.</div><div class=""><br class=""></div><div class="">if "%1" == "" echo Must specify the processor parameter.</div><div class="">if "%1" == "" exit</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Ensure that we can pick up the executable path.</div><div class=""><br class=""></div><div class="">if "%SIM_BIN_PATH%" == "" echo Must use a newer simulator version (10/25/17 or later).</div><div class="">if "%SIM_BIN_PATH%" == "" exit</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Capture the operating system console log.</div><div class=""><br class=""></div><div class="">set -n console log=sp-%1.log</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Output the usage notes.</div><div class="">; </div><div class="">; The Telnet standard requires CR to be followed by LF or NUL.  The QCTerm</div><div class="">; terminal emulator does not comply with this requirement; with AUTO LF turned</div><div class="">; off, it sends just a CR.  SIMH complies with the standard and discards a LF or</div><div class="">; NULL following a CR, but this means that the TSB speed-sense input of CR LF</div><div class="">; (or CTRL+M CTRL+J) won't work.  The workaround is to do CR LF LF or turn AUTO</div><div class="">; LF on, press ENTER, and then turn it off again (QCTerm sends CR NUL LF when</div><div class="">; AUTO LF is on).</div><div class=""><br class=""></div><div class="">echo</div><div class="">echo</div><div class="">echo The A001 password is "A001".</div><div class="">echo For QCTerm sessions, type "CR LF LF" for PLEASE LOG IN.</div><div class="">echo</div><div class="">echo</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Configure the CPU.</div><div class=""><br class=""></div><div class="">if "%1" == "2100" set CPU %1,32K,FP</div><div class="">if "%1" != "2100" set CPU %1,32K</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Configure the I/O card cage.</div><div class=""><br class=""></div><div class="">set IPLI SC=10</div><div class="">set TTY  SC=12</div><div class="">set TBG  SC=13</div><div class="">set DS   SC=14</div><div class="">set MSD  SC=16</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Configure the simulation environment.</div><div class=""><br class=""></div><div class="">set IPLI ENABLED</div><div class=""><br class=""></div><div class="">set PTR  DISABLED</div><div class="">set PTP  DISABLED</div><div class="">set LPT  DISABLED</div><div class="">set BACI DISABLED</div><div class="">set MPX  DISABLED</div><div class="">set DPD  DISABLED</div><div class="">set DRD  DISABLED</div><div class="">set MTD  DISABLED</div><div class="">set PIF  DISABLED</div><div class=""><br class=""></div><div class="">set DS0 7905</div><div class="">set MSC 13183</div><div class=""><br class=""></div><div class="">if "%SIM_MAJOR%" == "3" break after=50000</div><div class="">if "%SIM_MAJOR%" != "3" expect haltafter=50000; set env reply=send</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Connect the Processor Interconnect cables.</div><div class=""><br class=""></div><div class="">attach -L IPLI 4020</div><div class="">attach -L IPLO 4021</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Load and start the IOP.</div><div class="">;</div><div class="">; Attach the configured tape for the specified processor.</div><div class=""><br class=""></div><div class="">if "%1" == "2100" attach -E MSC0 IOPGEN-2100.tape</div><div class="">if "%1" != "2100" attach -E MSC0 IOPGEN-21MX.tape</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Load the IOP cross-loader.</div><div class=""><br class=""></div><div class="">boot MSC0</div><div class=""><br class=""></div><div class="">assert T=102077</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Start the IOP cross-loader.</div><div class=""><br class=""></div><div class="">deposit P 002000</div><div class="">go until "START IOP PROTECTED LOADER.  PRESS RETURN "</div><div class=""><br class=""></div><div class="">echo</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Start the IOP to receive the program.</div><div class="">;</div><div class="">; The IOP command file is run with the -E switch to cause execution to continue</div><div class="">; after errors.  An "I/O Error" occurs when the SP exits and the IPL connection</div><div class="">; is broken.  We want the command file to continue to exit the IOP instance</div><div class="">; automatically.</div><div class=""><br class=""></div><div class="">if "%SIM_MAJOR%" == "3" ! %SIM_BIN_PATH% -E ciop %1 &</div><div class="">if "%SIM_MAJOR%" != "3" ! %SIM_BIN_PATH%    ciop %1 &</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">;; Connect the Processor Interconnect cables.</div><div class="">;</div><div class="">;attach -L  IPLI 4020</div><div class="">;attach -LW IPLO 4021</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Wait for the IOP.</div><div class=""><br class=""></div><div class="">echo Waiting for the IOP...</div><div class="">set ipli wait</div><div class="">echo Wait complete.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Reply to "START IOP PROTECTED LOADER.  PRESS RETURN "</div><div class="">;</div><div class="">; Expect a halt 102077 when the IOP has been loaded.</div><div class=""><br class=""></div><div class="">reply "\r"</div><div class="">go</div><div class=""><br class=""></div><div class="">assert T=102077</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Wait for the IOP to start and initialize.</div><div class=""><br class=""></div><div class="">echo Waiting for the IOP...</div><div class="">set ipli wait</div><div class="">echo Wait complete.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; The IOP is now up and running.</div><div class="">;</div><div class="">;; We must delay here to allow the IOP time to initialize before staring the SP.</div><div class="">;</div><div class="">; ! sleep 1</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Attach the TSB system disc.</div><div class=""><br class=""></div><div class="">attach -E DS0 SPGEN-%1.7905.disc</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; If the IOP is tracing, it will start up more slowly than otherwise.  The IOP</div><div class="">; must initialize before the SP is started.  Therefore, the following "sleep"</div><div class="">; command is required only if IOP tracing is enabled.</div><div class=""><br class=""></div><div class="">; ! sleep 5</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Start a multiplexer terminal session (for convenience).</div><div class=""><br class=""></div><div class="">; ! start E:\Simulation\QCTerm\qcterm.<wbr class="">exe F:\Simulation\HP 700\Config\mux.qct</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Boot the system from the disc.</div><div class="">;</div><div class="">; Expect halt 102077 for a successful load.</div><div class=""><br class=""></div><div class="">deposit S 000000</div><div class="">boot DS0</div><div class=""><br class=""></div><div class="">assert T=102077</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Set up simulator tracing.</div><div class="">;</div><div class="">; set -n debug sp-trace.log</div><div class="">; set ipli debug</div><div class="">; set iplo debug</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; Start the system.</div><div class=""><br class=""></div><div class="">;set throttle 30%</div><div class=""><br class=""></div><div class="">go until "COMMANDS?" ; reply "NO\r"</div><div class="">go until "DATE?"     ; reply "%DATE_JJJ%/%DATE_YY%\r"</div><div class="">go until "TIME?"     ; reply "%TIME_HH%%TIME_MM%\r"</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; The system responds with "HP22687A-<datecode>".  The halt delay is enough</div><div class="">; to permit the datecode and trailing CR LF to be output before the simulator</div><div class="">; stops.  This means that we do not need to match the datecode explicitly.</div><div class="">;</div><div class="">; Now SLEEP the system.</div><div class="">;</div><div class="">; Expect halt 102077 for successful system shutdown.</div><div class=""><br class=""></div><div class="">; go until "\r\n"                    ; reply "SLEEP\r"</div><div class="">; go until "SYSTEM DUMP OR RELOAD? " ; reply "NO\r"</div><div class=""><br class=""></div><div class="">go</div><div class=""><br class=""></div><div class="">; assert T=102077</div><div class=""><br class=""></div><div class="">exit</div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class=""><div class="h5"><div class="">On 18 Jan 2018, at 15:40, Bryan Davies <<a href="mailto:bryan.e.davies@gmail.com" target="_blank" class="">bryan.e.davies@gmail.com</a>> wrote:</div><br class="m_-516508250908408877Apple-interchange-newline"></div></div><div class=""><div class=""><div class="h5"><div dir="ltr" class=""><div class="gmail_default" style="font-size:small">Many thanks to all for the advice.   Unfortunately I'm still not quite there.</div><div class="gmail_default" style="font-size:small"><br class=""></div><div class="gmail_default" style="font-size:small">I have written an Expect script which runs Simh and sure enough responds to the startup prompts.  Unfortunately after it completes the terminal isn't interactive anymore.  Oddly it still echoes characters to the screen but with no response - either from RSTS or Rasbian.   If I open another Terminal, PS shows me the pdp11 emulator running as another process but tty1 is stuck in bash.</div><div class="gmail_default" style="font-size:small"><br class=""></div><div class="gmail_default" style="font-size:small">I have included a fork and disconnect at the end of the script as suggested but to no effect.</div><div class="gmail_default" style="font-size:small"><br class=""></div><div class="gmail_default" style="font-size:small">Expect commands don't seem to work within Simh.  Should they?</div><div class="gmail_default" style="font-size:small"><br class=""></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On 18 January 2018 at 09:59, Bryan Davies <span dir="ltr" class=""><<a href="mailto:bryan.e.davies@gmail.com" target="_blank" class="">bryan.e.davies@gmail.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><div class="gmail_default" style="font-size:small">Hi,</div><div class="gmail_default" style="font-size:small"><br class=""></div><div class="gmail_default" style="font-size:small">I volunteer for a computer museum in Cambridge UK where we would much like to extend our mini-computer exhibit.   We want to set up a VT100 running RSTS/E for our visitors to use. As the system needs to start unattended I need it to boot up RSTS from power up.</div><div class="gmail_default" style="font-size:small"><br class=""></div><div class="gmail_default" style="font-size:small">I have installed Simh on a Raspberry Pi B and connected the VT100 to the serial port ttyAMA0.</div><div class="gmail_default" style="font-size:small"><br class=""></div><div class="gmail_default" style="font-size:small">While I can login to the Pi on the VT100 and boot the emulator manually, RSTS/E has a number of prompts within the boot dialogue (Date, Time etc) which need to be answered before it is possible for a User to login.  I have tried putting these responses in a Shell script, and while that 'works' insofar as the boot process completes, it doesn't return control to the terminal after the script ends.</div><div class="gmail_default" style="font-size:small"><br class=""></div><div class="gmail_default" style="font-size:small">Can anyone advise how to do it?</div><div class="gmail_default" style="font-size:small"><br class=""></div><div class="gmail_default" style="font-size:small"><br class=""></div></div>
</blockquote></div><br class=""></div></div></div><span class="">
______________________________<wbr class="">_________________<br class="">Simh mailing list<br class=""><a href="mailto:Simh@trailing-edge.com" target="_blank" class="">Simh@trailing-edge.com</a><br class=""><a href="http://mailman.trailing-edge.com/mailman/listinfo/simh" target="_blank" class="">http://mailman.trailing-edge.<wbr class="">com/mailman/listinfo/simh</a></span></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></body></html>