[Simh] HP2100 MSU BASIC

J. David Bryan jdbryan at acm.org
Mon Feb 25 17:28:15 EST 2008


On 25 Feb 2008 at 14:06, Tim Riker wrote:

> I use the asm21-pl.txt perl assembler also in this directory. 

Your assembler has a problem.  It is emitting zeros for BSS statements, but 
this is wrong.  BSS should only advance the program counter.  In other 
words, BSS should "leave a hole" in the output stream.

The HP RTE-IV Assembler Manual (92067-90003) says in section 4-6:

  "The BSS pseudo operation advances the program or base page location
   counter according to the value of the operand.  [...]  The initial
   content of the area set aside by the statement is unaltered by the
   loader."

As an example, see locations 00060 and 00061 in your two listings.  In 
"22255.lst", we have:

  00060 034062        DEF CARDS    LINK TO CARD READER INITIATE
  00061 000000  PTAP  BSS 1

In "22255mon.lst", we have:

  00060 000000  .CARD BSS 1
  00061 002147  ?PTAP  DEF PTAPE   LINK TO PHOTOREADER INPUT

The intent is that when both tapes are loaded, both programs have access to 
the card reader and photoreader drivers via locations 60 and 61, 
respectively.  That is, the "22255mon.abs" tape should have a "hole" at 
location 60 that is filled in by the other tape, and vice-versa for 
location 61.

But as it is now, the "22255mon.abs" tape has a defined 0 at location 60, 
which overlays the card reader link.  If you load the tapes the other way 
around, the photoreader link is overlaid.  There are several such 
occurrences in the program.  This is very likely the cause of your problem.


> Did you build from my sources?

Actually, I pulled the source and binaries from the HP LOCUS (a.k.a. 
contributed library) tape.  The sources compare to yours, except that you 
have a few hard-coded 11B select codes in "22255.asm" that are coded as 00 
in the LOCUS source.  These aren't significant, though, as the I/O 
instructions involved are reconfigured at run time for the TTY channel.

                                      -- Dave




More information about the Simh mailing list