[Simh] HP2100 MSU BASIC

J. David Bryan jdbryan at acm.org
Mon Feb 25 12:30:04 EST 2008


[ Tim, I've trimmed ClassicCmp off of the reply list, as I think that this 
is either a SIMH issue or a limitation of the BASIC program.  I'd recommend 
posting a summary back to ClassicCmp when we resolve it. ]


On 24 Feb 2008 at 21:04, Tim Riker wrote:

> Sweet! How did you set it up?

I used the default SIMH setup, but I've just tested now with your 
configuration, and it works OK too.  The only things I did differently were 
to specify the TTY select code for both the LOG TTY and the CHANNEL 1 TTY 
addresses, and I did not punch a tape but instead continued execution 
directly.

I did have a squint at the source code, and the "information table" is 
simply one to ten text lines that are printed as a "message of the day" 
when you log in.  So something like "WELCOME TO MSU BASIC" would be an 
appropriate entry.

If I patch the LOG TTY routines READL and OUTL to do an immediate JMP 
READL,I and JMP OUTL,I right after the subroutine entries, BASIC seems to 
work fine.  I can log in, enter a program, run it, log out, etc.  If the 
READL and OUTL routines are executed (to read and print on the LOG TTY), 
though, I get a hang.  That, coupled with the abstract in the catalog that 
says that "two to five TTYs are supported," leads me to believe that you 
need a second TTY, which SIMH doesn't support.  I suspect that trying to 
point both the LOG TTY and the user TTY to the same device is causing some 
interference.

You could patch the program as above, though, if you don't need the log 
device.  Here's a transcript of the session with the patches in place:  

[...]
YEAR? 75
MONTH? 12
DAY? 12
TIME? 1212
HELLO-ROOT
NAME-I.D.BILL-0
CHAN: 1 ACCOUNT 0
TIME ON:  1212  12/ 12/ 75
WELCOME TO MSU BASIC

READY
10 PRINT "HELLO FROM MSU BASIC"
20 END
RUN
HELLO FROM MSU BASIC

READY
BYE

CHAN: 1 ACCOUNT 0
CONNECT TIME: 1
GLAD TO BE OF SERVICE, BYE


> Yes, SIMH is backwards this way. The slot ought to list a card, and
> not have the card list the slot. That way any card or cardset could be
> duplicated.

SIMH could be enhanced to respond to:

  sim> set tty dev=10,14,17

...for example, to support multiple devices.  But the problem isn't syntax 
but rather reentrancy.  A SIMH device has only a single set of state data, 
unless it's explicitly written to handle an array of states (e.g., 
multiplexers, disc controllers with multiple drives).  It'd be nice if the 
framework duplicated the device state automatically, so that one could have 
as many TTY cards (e.g.) as desired, but it'd be a big rewrite -- not only 
the framework, but every device simulation would have to be changed as 
well.


> While I'm at it, I suppose I'd rather see part numbers than names, but
> that's just me. (ie 12531C instead of TTY) 

Might be a problem with multiple devices that used the same type of 
interface card, e.g., PTR and PTP both used the 12597 duplex register, 
several different printers used the 12845 printer interface, etc.  Device 
names are probably more reasonable, because we simulate both the peripheral 
device and its associated interface card as a unit.

                                      -- Dave




More information about the Simh mailing list