[Simh] fprint_sym and parse_sym limitation

2015-09-11 Thread Paul Koning
As currently defined, fprint_sym and parse_sym are invoked strangely when 
processing a register value.  From looking at the code, I can see that for this 
case, the "addr" argument is set to the register radix, and SIM_SW_REG is set 
in the switches word.

It may be desirable to format or parse values differently for different 
registers.  As it stands, that's not possible because the function can't tell 
which register it's formatting.  I tried setting some of the registers to 
"decimal" as a way to get addr to be 10 instead of 8.  That works until someone 
says "e -d reg" because the mainline sees the -d and concludes it should pass 
10 in addr.

Ideally one of the argments, for the register case, should point to the REG 
entry for the register in question.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] fprint_sym and parse_sym limitation

2015-09-11 Thread Paul Koning

> On Sep 11, 2015, at 3:05 PM, J. David Bryan  wrote:
> 
> On Friday, September 11, 2015 at 14:01, Paul Koning wrote:
> 
>> It may be desirable to format or parse values differently for
>> different registers.  As it stands, that's not possible because the
>> function can't tell which register it's formatting.  [...] 
>> 
>> Ideally one of the argments, for the register case, should point to
>> the REG entry for the register in question.
> 
> I've run into this same problem with a new simulator I'm developing.  I've 
> solved it (unofficially) by passing a set of user-defined register flags in 
> the upper 16 bits of the radix parameter, i.e.:
> 
> -(fprint_sym (ofile, rdx, &val, NULL, sim_switches | SIM_SW_REG) > 0))
> +(fprint_sym (ofile, (rptr->flags & REG_UFMASK) | rdx, &val,
> + NULL, sim_switches | SIM_SW_REG) > 0))
> 
> ...and the same for parse_sym.  It also needs this in sim_defs.h:
> 
> +#define REG_V_UF16   /* device specific */
> +#define REG_UFMASK  (~((1u << REG_V_UF) - 1))
> 
> I considered passing a register pointer, but this method has two 
> advantages:
> 
> - it's backward compatible, so no changes to calls in existing simulators
>   are needed

Not quite.  It would break existing simulators that use the addr field for 
register radix without masking it.  Those may not be common.  

If you want to disregard that case, would it not be just as simple, but more 
powerful, to pass the index into the registers array as "addr"?  Then all you 
need is to find the regs vector from the UNIT pointer, and index that with 
addr, and you have all the information you might want about that register -- 
its flags, name, or the register number if you want to use that.

> 
> - it allows groups of registers to be handled easily
> 
> As an example, I have a "current instruction register" and a "next 
> instruction register" that both need the same special treatment.  I tag 
> both register definitions with a used-defined REG_IR value, and then in 
> fprint_sym I need only test for the one flag value rather than two separate 
> register-pointer values.

True, but if you can see the register array entry, then you can test the flag 
from that entry, which is just as general.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] fprint_sym and parse_sym limitation

2015-09-11 Thread Paul Koning

> On Sep 11, 2015, at 4:43 PM, J. David Bryan  wrote:
> 
> On Friday, September 11, 2015 at 15:32, Paul Koning wrote:
> 
>> Not quite.  It would break existing simulators that use the addr field
>> for register radix without masking it. 
> 
> But existing simulators wouldn't be passing any user-defined REG_* flags, 
> so "(rptr->flags & REG_UFMASK) | rdx" would be equal to "rdx", and they'd 
> receive the radix just as before.

Yes, good point.

> 
> 
>> If you want to disregard that case, would it not be just as simple,
>> but more powerful, to pass the index into the registers array as
>> "addr"?  Then all you need is to find the regs vector from the UNIT
>> pointer, and index that with addr, and you have all the information you
>> might want about that register -- its flags, name, or the register
>> number if you want to use that. 
> 
> Assume that I have three CPU registers that I want to format identically.  
> How do I tell if I've been called for one of these?  If I receive the 
> index, then I'd have to do:
> 
>  if (addr == 3 || addr == 7 || addr == 12) ...
> 
> or:
> 
>  if (strcmp (cpu_reg [addr].name, "CIR") == 0 ||
>  strcmp (cpu_reg [addr].name, "NIR") == 0 ||
>  strcmp (cpu_reg [addr].name, "XIR") == 0) ...
> 
> whereas with a user-defined flag, it's:
> 
>  if (addr & REG_IR) ...


I'd do: if (cpu_reg[addr].flags & REG_IR) ...

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] fprint_sym and parse_sym limitation

2015-09-13 Thread Paul Koning

> On Sep 12, 2015, at 12:24 AM, J. David Bryan  wrote:
> 
> On Friday, September 11, 2015 at 20:17, Paul Koning wrote:
> 
>> I'd do: if (cpu_reg[addr].flags & REG_IR) ...
> 
> OK, that's a reasonable approach.
> 
> You might wish to write an implementation of your idea.  I recall trying it 
> myself when I was first looking into the issue, but it turned out to be 
> reasonably complicated -- more so than passing register flags, which 
> required changing only two of the fprint_sym calls as I have outlined while 
> maintaining backward compatibility with existing simulators.

I wonder if it would make sense to create new functions, with cleaner calling 
conventions, and a global simulator flag that the init code can set (or set at 
compile time) to tell the mainline which calling convention to use.
> 
> You mentioned getting the register array by working back from the UNIT 
> pointer, but unfortunately, uptr is NULL in some cases, e.g., when called 
> from ex_reg.  ex_reg receives a REG pointer but neither a unit pointer or a 
> device pointer.  It could be added, of course.
> 
> Also, it's not clear how to derive the register index in ex_reg.  It's 
> known in find_reg, but it's not passed back out.  It could be rediscovered 
> by a second scan of the register array, though, to match the REG pointer.
> 
> Even when passing a register index and unit pointer, or a register pointer, 
> there's still the problem of identifying how that register is to be handled 
> within fprint_sym.  I think that something within the REG structure itself 
> needs to be the identifier, as identifying via the index or REG address 
> leads to maintenance issues, as I've noted earlier.
> 
> As an aside, I've not looked carefully, but I suspect that the 
> sim_vm_parse_addr and sim_vm_fprint_addr routines are just special cases of 
> this more general problem of knowing which register is being passed so that 
> you then know how to handle its parsing or printing.  It'd be nice if a 
> general solution could be found that would fold these in as well.

parse_addr and fprint_addr are another area that gave me surprises.  They don't 
see the switches, so there isn't any way for command switches to affect the 
address printing, which is what I wanted to be able to do.

In general, and that ties to my earlier comment, the SIMH calling conventions 
and structure layouts show lines of long evolution without a common model.  We 
have flags in some places but not others, switches passed in some cases but not 
others.  There are functions to format stuff that aren't told what it is they 
are formatting.  We have a context pointer in the device, but not in the unit 
(I ended up having to abuse the filebuf for that).  I wonder if a more general 
rationalization of interfaces and structures -- possibly one that means 
adjusting the existing VMs to use the new stuff -- is worth doing.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] fprint_sym and parse_sym limitation

2015-09-14 Thread Paul Koning

> On Sep 14, 2015, at 12:53 AM, Mark Pizzolato - Info Comm  
> wrote:
> 
> ...
> Paul said:
>> parse_addr and fprint_addr are another area that gave me surprises.  They
>> don't see the switches, so there isn't any way for command switches to
>> affect the address printing, which is what I wanted to be able to do.
> 
> The current command's switches are visible via the global sim_switches.  
> Accessing this variable is done throughout the codebase.  How doesn't this 
> work for you?

It sounds fine.  I noticed that simh.doc needs to be updated and made more 
complete, since a bunch of information in it is incorrect, and a bunch of 
useful things (like this one) are not mentioned.  I'll make a stab at doing 
some updates and sending the result to this list.  Or is there another way to 
submit work?

> Paul said:
>> We have a context pointer in
>> the device, but not in the unit (I ended up having to abuse the filebuf for
>> that).  
> 
> Reusing the filebuf could certainly be used for an arbitrary context variable 
> if it isn't being used otherwise.  Alternatively fileref can optionally also 
> not be a FILE *.  When it isn't a FILE *, the unit->dynflags UNIT_NO_FIO flag 
> should be set.  When set, it becomes a unit specific void * which can be used 
> for context or anything else.

Ok.  This is another example of something undocumented.

> Dave's suggestion seems most reasonable due to the zero impact on the 
> existing simulators.  Can you work with that?

It certainly looks that way.  Thanks.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] telnet sim> console / remote controlling the sim via python

2015-09-21 Thread Paul Koning

> On Sep 21, 2015, at 2:40 PM, Mark Benson  wrote:
> 
> Hi,
> 
> I have a vague recollection of seeing and/or using this feature, but it might 
> have been an independent mod, but is there facility to access the sim> 
> console via telnet? Everything else is telnet-able, it would make sense.
> 
> I would like to control the simulator via a python library and the simplest 
> answer seemed, initially, to be telnet, unless someone else has a better 
> bright idea for it?

What if you set the console to remote, which makes it listen to telnet, and 
then connect to it?

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] fprint_sym and parse_sym limitation

2015-09-23 Thread Paul Koning

> On Sep 22, 2015, at 7:59 PM, Mark Pizzolato - Info Comm  
> wrote:
> 
> On Monday, September 14, 2015 at 6:20 AM, Paul Koning wrote:
>> ...
>> Ok.  This is another example of something undocumented.
> 
> True.  
> 
> Meanwhile, I was thinking this over one more time  and I realized that I had 
> forgotten that there are already 2 user/device specific void pointers in the 
> UNIT structure:
> 
>   uptr->up7
>   uptr->up8
> 
> Do with them as you wish.

Thanks.

That prompted me to look in sim_defs.h to see if there are other gems hiding.  
There are.  

I'm going to make a stab at updating simh.doc with what I can see, and 
description of what I understand or TBS for what I see but don't know how to 
document.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] fprint_sym and parse_sym limitation

2015-09-23 Thread Paul Koning

> On Sep 23, 2015, at 11:39 AM, Mark Pizzolato - Info Comm  
> wrote:
> 
> On Wednesday, September 23, 2015 at 8:31 AM, Paul Koning wrote:
>> ...
>> I'm going to make a stab at updating simh.doc with what I can see, and
>> description of what I understand or TBS for what I see but don't know how to
>> document.
> 
> Great!
> 
> Please start from the latest simh.doc from the github repo.  

Done.  I sent a pull request.  This is my first, so if I'm doing this wrong, 
please give me directions on how to do it right.

> 
> Please come back with your TBS list and we'll flesh out what is needed.

There are three: in DEVICE, the "description" field; in UNIT, the "iostarttime" 
field; and for REG_UNIT the way in which the address of the data is computed.

By the way, the existence of REG_UNIT contradicts the statement earlier in the 
doc that only devices have registers...

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

[Simh] Command processing -- abbreviations and VM-supplied commands

2015-09-25 Thread Paul Koning
In doing a new simulator, I ran into an unexpected quirk of command parsing, in 
particular handling of VM-specific commands.

The way it works is that a user command matches a command table entry if the 
user string is a prefix of the command in the table.  And as soon as a match is 
found, the search stops and that entry is used.

In addition, if a VM command table is supplied, that table is searched first, 
and only if no match is found will the standard command table be searched.

These rules can produce some annoying surprises.  For example, suppose I have a 
VM specific command table that contains just one entry, for the command 
"SUFFIX".  The result is that the user command "S" now executes "SUFFIX" rather 
than the expected "STEP".

A lot of programs that supply this sort of user interface use an "unambiguous 
match" rule: a command is accepted if the supplied string is a prefix of 
exactly one command table entry.  Then to allow specific shorthands like "s" 
there is an additional rule that an exact match is accepted even if it is a 
prefix of some other command.  And in such systems, you'd find an explicit 
table entry for "s" as an alias of "step".

I'm wondering if a similar change for SIMH could be considered.  As it stands, 
when I wanted to add a VM-specific command, the first choice for the command 
name (START) and the second (NORMAL_START) conflict with popular 
single-character command names.  I ended up with a command name RESTART, which 
is reasonably obvious but doesn't match what the corresponding operation is 
called in the real hardware.  The change I would suggest is that a command 
lookup would scan both tables, and accept the user entry if it is either an 
exact match, or a prefix match of exactly one entry (across both tables).

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Command processing -- abbreviations and VM-supplied commands

2015-09-25 Thread Paul Koning

> On Sep 25, 2015, at 2:24 PM, Mark Pizzolato - Info Comm  
> wrote:
> 
> On Friday, September 25, 2015 at 10:59 AM, Paul Koning wrote:
>> In doing a new simulator, I ran into an unexpected quirk of command parsing,
>> in particular handling of VM-specific commands.
>> 
>> The way it works is that a user command matches a command table entry if
>> the user string is a prefix of the command in the table.  And as soon as a
>> match is found, the search stops and that entry is used.
>> 
>> In addition, if a VM command table is supplied, that table is searched first,
>> and only if no match is found will the standard command table be searched.
>> 
>> These rules can produce some annoying surprises.  For example, suppose I
>> have a VM specific command table that contains just one entry, for the
>> command "SUFFIX".  The result is that the user command "S" now executes
>> "SUFFIX" rather than the expected "STEP".
> 
> 
> The most common use of a VM specific command table is to replace some 
> standard/general purpose SCP command.  This is done by each the VAX 
> simulators to replace the BOOT command.

Ok, that makes sense (and in fact I need that elsewhere). 

> 
> Three other simulators in the github repo provide a VM specific command table:
> IBM1130, PDQ-3 and SAGE.
> 
> The extended commands in the SAGE simulator ran into the exact same problem 
> you did since this system also wanted to add a command which started with S.  
> His ingenious solution to the problem was to redefine the STEP command in the 
> VM specific table dispatching to the standard STEP command handler (copying 
> the entry from the SCP defined command table). 
> 
>> A lot of programs that supply this sort of user interface use an "unambiguous
>> match" rule: a command is accepted if the supplied string is a prefix of 
>> exactly
>> one command table entry.  Then to allow specific shorthands like "s" there is
>> an additional rule that an exact match is accepted even if it is a prefix of 
>> some
>> other command.  And in such systems, you'd find an explicit table entry for
>> "s" as an alias of "step".
>> 
>> I'm wondering if a similar change for SIMH could be considered.  As it 
>> stands,
>> when I wanted to add a VM-specific command, the first choice for the
>> command name (START) and the second (NORMAL_START) conflict with
>> popular single-character command names.  I ended up with a command
>> name RESTART, which is reasonably obvious but doesn't match what the
>> corresponding operation is called in the real hardware.  The change I would
>> suggest is that a command lookup would scan both tables, and accept the
>> user entry if it is either an exact match, or a prefix match of exactly one 
>> entry
>> (across both tables).
> 
> This would get very messy since, for example, it would break the very common 
> usage of "S" to invoke the STEP command.  STEP is merely one of many existing 
> commands which start with S (SET, SHOW, SAVE, SHIFT, SEND, SCREENSHOT).  
> Messy since we'd have to allow the normal command parsing to provide the 
> original abbreviation paradigm and then complain about the conflicts with the 
> VM supplied cases AND also provide logic to explicitly allow replacement of 
> SCP provided commands which a VM really intends to replace.

My suggestion would preserve "S" and other single character abbreviations by 
adding an explicit "S" command (as an alias for "STEP").

> 
> I suggest you follow the example provided by the SAGE simulator.

Ok, yes, that sounds like a simpler solution.  Thanks.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Comments WRT to IP vs ISO and OSI model

2015-10-07 Thread Paul Koning

> On Oct 6, 2015, at 9:08 PM, Clem Cole  wrote:
> 
> 
> On Tue, Oct 6, 2015 at 8:36 PM, Johnny Billquist  wrote:
> Right. I suspect Rich was actually thinking of the 7 layer OSI model, which 
> DEC tried really hard to implement.
> ​insert >>eventually<< in there and I agree.
> 
> In the first few generations of DECnet, as Rich points out, DEC was no 
> different than anyone else and had a closed networking system and it was not 
> that clean.  By DECnet phase III many lessons had been learn and it really 
> was a nice subsystem.  However, I've always felt that one of the failures of 
> DECnet was the dogged adherence to ISO protocol later made them ignore the 
> "IP" part of the the Internet protocol for too long - because in fact OSI did 
> not really have it in its model.

You're mixing up layer models and specific protocols.  TCP/IP is (roughly) an 
instance of the OSI model, just as DECnet Phase III and IV are.  Specifically, 
DECnet routing layer, IP, and OSI IS/IS are all network layer (layer 3) 
protocols.

> By the time the ISO guys added intra-networking (network of networks - or 
> what I referred to as "Dave Clark's observation"), Metcalfe's law (the value 
> of a communications network is exponentally proportional to the number of 
> things connected to it)​ it was too late.   And by then the US Gov had paid 
> for enough IP/TCP implementations and there were so many on the Internet that 
> even IBM and Microsoft could not catch up (although they too tried).

True.  What DEC missed is the speed of adoption of all the stuff that came with 
Unix, once Unix became a force in the commercial world (which, I believe, is 
due to the success of Sun).

> (And no, TCP/IP do *not* follow the 7 layer OSI model.)
> ​Amen, not by a >>long<< shot.   You could sort of map it, and we all tried 
> to explain the IP stack in those terms, but you are so right.

I'm not sure anything ever precisely followed the 7 layer OSI model.  In any 
case, that's not particularly interesting.  The 7 layer model is nothing more 
than a guideline to protocol designers.  What actually matters in reality is 
the protocols.

TCP, like DECnet Phase III, has approximately 4 layers, which can be roughly 
mapped to the datalink, network, transport, and application layers of OSI.  
Phase III NSP also includes the session layer; TCP never really had one (that's 
left to platform-specific machinery like inetd).  And no one really took the 
presentation layer seriously.  Also, in the real world the bottom layer 
generally contained both physical and data link layers.

DECnet Phase IV separated out the session layer in the specifications.  In the 
real world that didn't make any appreciable difference -- it slightly perturbed 
the NCP command syntax but apart from that it doesn't matter to anyone.

> That said, one of the problems with the OSI model was it did not do a good 
> job with the "network of network" concept which was what made the Internet 
> take off because it enabled Metcalfe's law to be in effect.
> 
> It seems to obvious today, but at the time, it was not so clear.  A lot of 
> very smart people believed in closed networks.

Depends on how you mean closed networks.  OSI was meant to be open.  DECnet is 
also open, in the sense that Sun used the term -- DEC owned the specs, anyone 
is free to implement to the specs.

The trouble with the protocols (not the layer model) is internetworking.  IP 
had that as part of the concept from the start.  DECnet did not; it wasn't 
meant to go outside a single organization.  OSI *did* think about 
internetworking, but because of its history it thought about it the wrong way.  
The origins of OSI are in the telco proprietary networking world -- the world 
of X.25.  This is where the standards describe only the customer interface, and 
what the telcos do internally is entirely proprietary, likely to vary from 
telco to telco.  Oh yes, there may be interworking specs, which specify what 
happens at the telco boundaries (if memory serves, that was X.75).  Also, the 
addressing definitely intended to support globally unique addresses -- just as, 
say, fully qualified telephone numbers are globally unique, as are IP addresses 
(ignoring NAT) but not DECnet Phase IV addresses.

Those origins explain why OSI protocols initially were connection oriented, 
again like X.25.  It wasn't until DEC and others like it got involved that OSI 
was forced into including datagram services, in the network layer specifically. 
 That also is when standardized routing protocols were created -- OSI IS/IS is 
largely the work of DEC and derived from an early proposal for DECnet Phase IV 
routing that was set aside ("too hard") in place of the "Phase III-E" 
hierarchical distance vector protocol we now know as Phase IV.  DEC also helped 
make the TP-4 transport layer work right for use on datagram network layers -- 
this was based on the experience with NSP and congestion control or congestion 
avoidance specifical

Re: [Simh] VMS/VDE: Almost there

2015-10-07 Thread Paul Koning

> On Oct 6, 2015, at 7:13 PM, Rich Alderson  
> wrote:
> 
>> From: Zachary Kline 
>> Date: Tue, 6 Oct 2015 09:42:36 -0700
> 
>> as far as DecNet goes, am I correct in assuming that it's mostly useful for
>> connecting clusters? I'm learning VMS almost entirely on my own, never having
>> been exposed to it during its heyday.
> 
> DECNET predates VMS.

Indeed, by several generations.

> ...
> DECNET is available under RSX-11M and RSTS/E on PDP-11s, Tops-10 and TOPS-20
> on PDP-10s, and under VMS (and possibly Ultrix, I don't remember for certain)
> on VAXen, and on VMS follow-on systems.  It is as far as possible agnostic
> about what kind of system it was running on or connecting to.

DECnet/Ultrix, yes.  There is also a limited DECnet for RT-11, and for DOS.  
And VAXELAN.  And possibly IAS, I don't remember that one for sure.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] VMS/VDE: Almost there

2015-10-07 Thread Paul Koning

> On Oct 7, 2015, at 11:22 AM, Johnny Billquist  wrote:
> 
> On 2015-10-07 15:56, Paul Koning wrote:
>> 
>> ...
>> DECnet/Ultrix, yes.  There is also a limited DECnet for RT-11, and for DOS.  
>> And VAXELAN.  And possibly IAS, I don't remember that one for sure.
> 
> I believe there was also DECnet for SunOS, and I know there was DECnet for 
> Symbolics Lisp machines. And people have implemented DECnet for Linux, and 
> I'm sure there are other examples out there as well...

I know of DECnet/Linux, didn't know those others.  My list was for DEC 
implementations.  Yes, given the open specs, anyone could implement DECnet on 
other platforms, and a number of people and companies did so.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] VMS/VDE: Almost there

2015-10-08 Thread Paul Koning

> On Oct 7, 2015, at 11:42 PM, John Forecast  wrote:
> 
> On Oct 7, 2015, at 7:17 PM, Johnny Billquist  wrote:
> 
>> ...
>> 
>   Phase II use NSP v3.1 so that’s probably another indication that it’s a 
> Phase I product.

That would be an interesting surprise.  The history I have seen says that Phase 
I was RSX only.

It also appears that Phase I is undocumented, and that it isn't compatible 
(can't be made to interoperate) with Phase II.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] VMS/VDE: Almost there

2015-10-08 Thread Paul Koning

> On Oct 8, 2015, at 10:32 AM, Johnny Billquist  wrote:
> 
> On 2015-10-08 15:57, Paul Koning wrote:
>> 
>>> On Oct 7, 2015, at 11:42 PM, John Forecast  wrote:
>>> 
>>> On Oct 7, 2015, at 7:17 PM, Johnny Billquist  wrote:
>>> 
>>>> ...
>>>> 
>>> Phase II use NSP v3.1 so that’s probably another indication that it’s a 
>>> Phase I product.
>> 
>> That would be an interesting surprise.  The history I have seen says that 
>> Phase I was RSX only.
>> 
>> It also appears that Phase I is undocumented, and that it isn't compatible 
>> (can't be made to interoperate) with Phase II.
> 
> Well, I have some documentation about the DECNET/8 implementation, as well as 
> the sources. Want to implement it? :-)

Maybe.  At the very least it would be interesting to reverse-engineer a basic 
protocol spec.  While the Phase III and IV specs are quite complete, and many 
Phase V specs can also be found (with effort), the Phase II specs omit some 
details, and Phase I specs have never been published as far as anyone can tell.

(What's missing from the Phase II specs is clear documentation of how 
"intercept" mode works, which is the primitive routing machinery Phase II 
provides.  I believe it's there for the benefit of PDP-10 systems with 
front-end processors, but I'm not sure about that.

> It talks DDCMP, and don't seem to be very complex. I can also see some 
> similarities with never versions of DECnet, that I'm a bit more familiar 
> with. But I haven't taken any deeper dives into it.
> 
> Attaching the documentation anyway...

Thanks!

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] VMS/VDE: Almost there

2015-10-09 Thread Paul Koning

> On Oct 9, 2015, at 9:38 AM, Johnny Billquist  wrote:
> 
>>> ...
>>  Phase II use NSP v3.1 so that’s probably another indication that it’s a 
>> Phase I product.
> 
> John, maybe you can clear some things up for me.
> Looking at the Wikipedia article about DECnet, it claims that phase I was 
> simply between two nodes. No larger than that. And in addition was RSX-11 
> only. And it was 1974.

It wouldn't be at all surprising if the information about Phase I were 
inaccurate given its undocumented status.

> Phase II says multiple implementations on different systems, and a max of 32 
> nodes. Also supposedly added task-to-task programming interfaces. And 
> supposedly 1975.
> 
> 
> Now, looking at the DECNET/8 documentation, there is some discrepancy here.
> DECNET/8 supports up to 127 nodes. It only have point-to-point links, but it 
> clearly have some idea of dealing with several hops to reach the destination. 
> It also obviously have task-to-task programming interfaces, which looks very 
> similar to what I know from phase IV.
> 
> Now, I'm happy to believe that Wikipedia is just plain wrong, but it would be 
> interesting to hear if you can provide any more details to what phase I and 
> phase II differed on, and where DECNET/8 would fit based on that.

I looked at the document you sent.  While it has some hints about the protocol 
in chapter 6, it doesn't come close to telling us what's necessary to build a 
compatible implementation.  DDCMP might be compatible; the bits of packet 
layout given on page 6-4 seem to match those of the later DDCMP specs.

NSP, on the other hand, clearly is not compatible.  Again, there are only hints 
of packet layouts -- only some of those are shown and their semantics not 
described.   It has an optional routing header just as Phase II does, but 
encoded differently.  And the message type field (MSGFLG, first byte of the NSP 
message header proper) looks somewhat like that of later versions of NSP but 
the encoding is substantially different.   The Connect message looks vaguely 
like a later Connect Initiate, but the details are quite different.  Based on 
what little I can see, the statement in the Phase II spec that Phase I was 
incompatible (implying "it's not feasible for a Phase II node to interoperate 
with a Phase I node") is indeed accurate.

The normal case of Phase II was that it allowed communication only between 
adjacent nodes.  A given node could have multiple interfaces, presumably 
connected to different neighbors, and it would use the destination address of a 
packet to choose the correct interface on which to communicate.  The same 
would, I assume, apply to Phase I.

Phase II had an optional routing header for something called "intercept" 
operation.  The DECnet/8 document describes the same sort of thing though the 
encoding is different.  I can't tell if DECnet/8 could actually supply routing 
headers; it does say clearly that it would not act on them.  Similarly, most 
Phase II implementations didn't handle routing headers either (would neither 
generate nor accept them).  The Phase II spec is not all that clear on how they 
are supposed to be generated or used, in fact.  I vaguely remember that TOPS-10 
(or -20?) used them, with the front end processor acting as the forwarding node 
and the main CPU as endpoint. So communication would be two hops: PDP-10 to 
front end to other node.  While theoretically there might be more hops, in 
practice that didn't happen.  For one thing, Phase II NSP doesn't appreciate 
lost packets.

In Phase III all that changed, with a real routing protocol, clearly documented 
routing operation, and an NSP that would do retransmission to handle lost 
datagrams.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] VAX sim: rqb address?

2015-11-02 Thread Paul Koning

> On Nov 1, 2015, at 3:27 PM, Mark Pizzolato  wrote:
> 
> On Sunday, November 1, 2015 at 11:57 AM, Cory Smelosky wrote:
>> On Sun, 1 Nov 2015, Mark Pizzolato wrote:
>> 
>>> 
>>> If you've done a:
>>> 
>>> sim> attach DZ portnum
>>> 
>>> then you can't disable the DZ device until you:
>>> 
>>> sim> detach DZ
>>> 
>>> If you haven't attached the DZ device, then please provide your config file
>> and I'll try to reproduce the problem.
>>> 
>> 
>> [csmelosky@maelona ~/Storage/Stuff/UnixArchive/BSD/Source/4.4BSD]$
>> ~/simh/BIN/vax
>> 
>> MicroVAX 3900 simulator V4.0-0 Betagit commit id: fa407e67
>> sim> set dz dis
>> Invalid argument
>> sim>
>> 
>> My config is...nonexistant.
> 
> Hmmm... That is not what I get:
> 
>  MicroVAX 3900 simulator V4.0-0 Betagit commit id: fa407e67
>  sim> set dz disa
>  sim> set dz ena
>  sim> att dz 1234
>  Listening on port 1234
>  sim> set dz disa
>  Command not allowed
> 
> That you get "Invalid argument" to the basic "set dz dis" command suggests 
> something else is going on.

"set dz dis" is short for "set dz disconnect".

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] SIMH and Compiler Profiling

2015-12-08 Thread Paul Koning

> On Dec 8, 2015, at 10:47 AM, Henry Bent  wrote:
> 
> Hi all,
> 
> ...
> Results, higher numbers are better:...
> As you can see, the performance improvements are fairly dramatic, with gcc 
> improving an average of 66%.  Of course, one benchmark is not necessarily 
> indicative of a real life workload; the most appropriate improvements would 
> probably be made by profiling using whatever workload your system generally 
> runs.  This was merely meant to illustrate what sort of gains are possible.

Interesting.  I would expect profiling to be most helpful for code that has 
some well defined hot spots, and computer emulators seem to be a good fit for 
that pattern.

> I find it fascinating that a Q9500 can be almost as fast, or faster, than a 
> real NVAX workstation.  I imagine that the most modern Intel processor would 
> probably be faster than any real VAX.

I'm amazed that a real VAX would be anywhere near as fast as a modern PC 
running the emulator.  Perhaps I'm mislead by PDP11 emulation, which has for 
ages now been vastly faster than the real machines.  (Ditto CDC 6000 series, 
for that matter.)

The other interesting thing is that GCC is better than ICC.  That's a bit 
surprising since ICC is totally focused on being a good Intel compiler, while 
GCC is a many-platforms portable compiler.  

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Graphics Terminals and Graphic System Phototypesetters

2015-12-10 Thread Paul Koning

> On Dec 9, 2015, at 10:33 PM, Will Senn  wrote:
> ...
> Is is possible to simulate a graphics terminal in SimH for the 
> PDP-11/40/45/70. So far, I have been able to get a text console working (I 
> think it's a Teletype ASR-33) and serial consoles (DCI). I have seen some 
> video of real PDP's playing lunar lander and such on graphics terminals, and 
> if this is possible in a simulated environment, I would like to try it out.

There are two parts to this.  One is the conversion of the output data stream 
to the image.  The other is the interface used.  In the case of a GT40, you 
have a distinct interface along with its encoding of graphics.  If you have 
something like that but with a different interface, you'd have to emulate that 
interface.  (For example, if you wanted to emulate a VT20, that's what would be 
involved.)

On the other hand, if you're dealing with a graphics terminal that interfaces 
via a serial line, the existing serial port interfaces would work and "all" you 
need is an external program that connects to that data stream -- say, via a 
telnet connection -- and turns it into a graphics image.

> Also, is it possible to simulate a graphics system phototypesetter? I get the 
> feeling that this is what TROFF was actually designed for and would be 
> interested in trying it out, as well.

Same issue, basically.  The typesetters I remember from my days in Typeset-11 
used a parallel interface somewhat like a line printer interface but, I think, 
not exactly the same.  Emulating that would be quite easy.  The data stream was 
proprietary to each typesetter, so the main task would be to interpret that 
data stream and translate it to graphics primitive for your chosen modern 
output device.  For example, it would probably be fairly straightforward to map 
old style typesetter output into PostScript.  The biggest issue might be 
finding adequate typesetter documentation, though for the Unix case you can, if 
all else fails, reverse engineer the application software that was used to 
drive it.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Graphics Terminals and Graphic System Phototypesetters

2015-12-10 Thread Paul Koning

> On Dec 10, 2015, at 10:50 AM, Quentin North  wrote:
> 
> 
>> 
>>> On Dec 9, 2015, at 10:33 PM, Will Senn  wrote:
>>> ...
>>> Is is possible to simulate a graphics terminal in SimH for the 
>>> PDP-11/40/45/70. So far, I have been able to get a text console working (I 
>>> think it's a Teletype ASR-33) and serial consoles (DCI). I have seen some 
>>> video of real PDP's playing lunar lander and such on graphics terminals, 
>>> and if this is possible in a simulated environment, I would like to try it 
>>> out.
>> 
> 
> A common graphics standard for serial terminals was Tektronix and an 
> emulation of a tektronix terminal is available in xterm ...

That's a common one, yes.  But there were plenty of other formats as well, each 
proprietary to a specific vendor.  Tek was just more successful in making their 
particular codes into an industry standard.  

There's another angle I didn't mention, not as likely for most of us: you might 
have a terminal that uses a standard interface but an unexpected communication 
protocol.  An example would be the Harris 2200 display advertising layout 
terminal, which uses (I am *not* kidding) bisync in half duplex multipoint 
mode, over an async serial line (such as a DL11-E) with modem control.  So you 
could almost do that with SIMH (give or take the modem control) but you'd end 
up having to implement both the data comm protocol as well as the graphics 
primitives at the other end of that serial data stream.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Graphics Terminals and Graphic System Phototypesetters

2015-12-10 Thread Paul Koning

> On Dec 10, 2015, at 11:48 AM, Al Kossow  wrote:
> 
> 
> Simulation of the output of early phototypesetters, or a Gerber photoplotter 
> is a little tricky because you need the glyph information that was printed on 
> the mechanism that shot the images of the characters onto the film output; 
> which could be moved around in different slots depending on the job being 
> typeset. Later units used high resolution CRT like things to form the 
> characters.

Indeed.  For disk type phototypesetters, you'd have to tell the simulation 
machinery what font disk is loaded, so it would know the character repertoire 
and their codes, to generate equivalent PostScript or the like.  For CRT type 
phototypesetters, the character and font repertoire is generally fixed for a 
given installation, but it would vary from one installation to the next.  
Customers would tell the manufacturers what fonts to include, and possibly 
special characters as well.  It's not like modern systems where you can count 
on Unicode (or even ASCII).

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Old school programming with wiresnips and a question about debugging standalone assembly

2015-12-16 Thread Paul Koning

> On Dec 16, 2015, at 8:08 PM, Alan Frisbie  wrote:
> 
> On 12/16/2015 03:51 PM, Will Senn wrote:
> 
>> If it doesn't come through imagine a guy with a pair of
> > wire cutters snipping off diodes from a ROM card for a PDP11.
> > Is this really how y'all programmed back in the day :)?
> 
> Yep, did that back in the day.   Imagine the fun of soldering
> diodes back in to correct a mistake or change the program.
> True, it was usually just a bootstrap, but it was sure a lot
> better than having to toggle it in every time.

The amazing part was that a single 16-word program could boot from a half dozen 
different devices.

CDC has a slicker approach: the 6000 series boot ROM ("deadstart panel") was a 
matrix of 12 rows of 12 switches.  The boot mechanism would use that as the 
initial set of instructions, much like the M792 diode ROM you mentioned.  But 
they were far easier to reprogram!

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] GOLD Keys and such

2015-12-18 Thread Paul Koning

> On Dec 18, 2015, at 7:21 PM, Will Senn  wrote:
> 
> All,
> 
> In working with the simulator and ancient OSes (in this case, RT-11XM 5.3), I 
> am coming across key-combinations that are beyond my ken, such as 
> GOLD-COMMAND and Line-Feed. I think I may be able to figure something out for 
> line-feed (CTRL-J, maybe?), but I have no idea how to generate a GOLD-COMMAND 
> keypress. Is there a simple solution, or a known standard way to make another 
> key (say F5) serve as the GOLD-COMMAND key?

"Gold" is a reference to a key on the WPS version of DEC terminals; that 
software used a lot of keystroke combinations where the gold key was the first 
keystroke.  It's the top left key on the function keypad of a VT52, so whatever 
that translates into is what you need here.  Command is also a (standard) key 
on the VT52 keypad; check a VT52 manual, I don't have one handy unfortunately.

And yes, line feed is control-j.  Return would be control-m.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Writeup of PDP-11 bootstrap loader analysis

2015-12-23 Thread Paul Koning

> On Dec 23, 2015, at 8:02 PM, Will Senn  wrote:
> 
> 
> 
> On 12/23/15 5:09 PM, Johnny Billquist wrote:
>>  
>> As for your analysis: 
>> Your explanation of branches seems somewhat over complicated. The 
>> instruction is indeed in just 8 bits, while 8 bits are the offset. 
>> However, there is no need to mess things up with one-complement, or tricks 
>> like that. The offset is an 8-bit value. Sign extend to 16 bits. Multiply by 
>> 2, and add to the updated PC. Simple as that. 
>> (Note that I said "updated PC". The PC will contain the address of the 
>> instruction after the branch before you start doing the calculation for the 
>> branch destination.) 
>> 
> Johnny,
> 
> Given Line 7 037760  100376   BPL WAIT
> 
> 100376 is a BPL instruction and the offset (376) is to be multiplied by two 
> and added to the updated PC. That is, 376 * 2 is going to be added to 037762. 
> 376 represents a negative offset in two's complement notation - it has a one 
> in it's most significant bit, the left hand bit in 11 111 110. As a human, I 
> kind of need the number in some form that makes sense to me, so I convert it 
> to a positive quantity by first taking the one's complement and adding one. 
> This gives me the positive magnitude of the negative number -1. Multiplying 
> this by two is easy, it's -2, which when added to 037762 yields 037760 , 
> which is the correct location. This is how I did the math. If I understand 
> you correctly, the machine doesn't do it this way. I tried multiplying 376, 
> 11 111 110 by shifting left one, 11 111 100, and adding that to 037762's 
> binary representation, but that doesn't seem to make sense. Would you please 
> elaborate?

Branch argument is -2, so branch displacement is twice that, or -4.  That is 
updated to the updated PC (the PC after the branch), or 037762 in this case.  
037762-4 = 037756 which is the TSTB.  That's a classic "wait for device ready" 
loop.

Your two's complement description is correct but you didn't do it right.  11 
111 110 complemented is 00 000 001, add one and you get 00 000 010 which is 2.  
So the original number was -2.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Feasibility of connecting physical LK to emulated LK device

2015-12-24 Thread Paul Koning

> On Dec 24, 2015, at 2:51 AM, b...@gewt.net wrote:
> 
> As it is largely just serial, I can think of museum displays this could 
> benefit (next pet project: SDL in a console framebuffer) due to the simple 
> adapter needed (http://www.wickensonline.co.uk/vaxen/linuxLK.html)
> 
> Thoughts?

Nice.  It would work for any OS where you can supply your own terminal driver.

A good place to find LK201 details, such as keycodes and the communication 
protocol, is in the PRO300 technical manual (on Bitsavers).

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Non-numeric character in IBM 1620 P & Q addresses

2015-12-24 Thread Paul Koning

> On Dec 23, 2015, at 4:30 PM, Bob Supnik  wrote:
> 
> There's nothing conditional about the user documentation. The 1965 reference 
> manual says, "MARS (Memory Address Register Storage) Check Light. This light 
> is turned on when a digit in MARS has a parity error or an invalid address. 
> These errors halt the machine immediately."
> 
> Now the key question is, what's an invalid address? Earlier, the user 
> documentation talks about detecting an address that's too large (high order 
> digit). But an invalid bit combination? Here's what the Customer Engineering 
> Manual has to say: "Near the end of each memory cycle, MAR is checked for 
> invalid digits in the ten-thousands position and for odd parity in each of 
> the five positions." Nothing about checking for invalid bit combinations.
> 
> So it appears to me that the simulator's definition of "valid" (or invalid) 
> addresses is too strict. Invalid bit combinations are not checked explicitly.
> 
> Then the question becomes, what does the 1620 actually do with an invalid bit 
> combination (with valid parity) in MAR? I can't understand the core memory 
> matrix selection logic in the CE Manual well enough to figure that out. The 
> decode process is supposed to yield exactly one of 10 select wires for each 
> digit position. For invalid bits, does it still yield just one? More than 
> one? None?

I would have guessed that a 4 to 10 BCD decoder would not bother with the 8 bit 
when decoding for lines 2-7, i.e., you'd get the n = 2..7 line if the input is 
n mod 8.  Judging by the CE Manual on bitsavers (227-5500-2), page 20, that's 
almost true.  It shows that the decoders for 3 through 7 are 3 input decoders, 
they don't use the 8 bit.  The decoder for 2 does use the 8 bit, interestingly 
enough.

So the answer would be: memory address digit pattern 1010 doesn't decode 
anything but patterns 1011 through  decode as if they were 0011 through 
0111.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Non-numeric character in IBM 1620 P & Q addresses

2015-12-25 Thread Paul Koning

> On Dec 25, 2015, at 2:21 AM, Bob Supnik  wrote:
> 
> It's worse than that. The detailed logic is shown on 227-5631-0 pp 188ff. The 
> decode chart for each decode switch (DSW) is:
> 
> DSW 0
> DSW 10001
> DSW 20010
> DSW 3X011
> DSW 4X100
> DSW 5X101
> DSW 6X110
> DSW 7X111
> DSW 81XX0
> DSW 91XX1
> 
> It's quite bizarre, actually. The decode switches are 4-input AND gates (sort 
> of), so every decode could have been complete. Instead, the X inputs are not 
> wired to anything.
> 
> The result is that for invalid digits:
> 
> 1010nothing active, because DSW2 decode is complete

You're right that I didn't look closely enough.  As Michael Short points out, 
1010 would decode as 8.  So for the original question, which is "what happens 
with a record mark (1010) in the address" the answer would appear to be that it 
is taken as an 8.

And yes, that does assume that some separate logic isn't triggering MAR Error 
on that case; I haven't looked.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Non-numeric character in IBM 1620 P & Q addresses

2015-12-25 Thread Paul Koning

> On Dec 25, 2015, at 2:21 AM, Bob Supnik  wrote:
> 
> ...
> So either no core is selected or multiple cores are selected. Now what 
> happens? I suspect it's something bad.

FWIW: given how core works, if more than one core select line is active, the 
read cycle will see the OR of the two selected cores (since either of them 
magnetized will produce the pulse due to the magnetization flip).  On the 
restore (write) cycle, assuming a single global inhibit line it will write the 
same to both cores.  So you're going to see the OR of the two words, if the 
core uses 1 for magnetized cores (AND otherwise).

If you have segmented inhibit, as in the CDC 6000 core modules, things get more 
interesting.  Suppose the inhibit decode is working right but the X or Y decode 
has a fault, and the two cores selected are in different inhibit regions.  If 
so, the read would produce the OR of the two bits, and the write would restore 
the core whose inhibit is driven, but you'd get a 1 in the other core since its 
inhibit is not active.

I suppose this sort of thing could happen in the wild with a fault in the 
select logic, which explains where there are "no dual address" memory 
diagnostics.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Multiple telnet ports in SimH to RSTS/E 9.6

2015-12-31 Thread Paul Koning

> On Dec 31, 2015, at 2:19 PM, Will Senn  wrote:
> 
> I am not able to figure out what devices to enable in SimH PDP-11 to get 
> multiple telnet connections in RSTS/E 9.6.
> 
> I'm using a PDP-11/73 with 4megs of memory and I have the console configured:
> 
> SET CONSOLE TELNET=1
> 
> I am able to telnet into port 1. It works as a login terminal no problem.
> 
> But, then I also tried to set up some DZ11 lines to support additional logins 
> over local telnet:
> 
> SET DZ ENABLE
> SET DZ LINES=8
> ATTACH DZ  10001
> SHOW DZ
> 
> but these don't seem to be picked up by RSTS/E. SimH let's me connect via 
> telnet to ports 10001-10007, but RSTS/E does not respond in the telnet 
> session. I reviewed my sysgen for RSTS/E and it doesn't appear to have a DZ11 
> peripheral configuration section. My sense is that RSTS/E doesn't support 
> DZ11s.
> 
> Here is the relevant section of the sysgen:
> Accept Peripheral defaults ?
> ---snip disk drives, paper tape, etc.
> DMC11's/DMR11's ?   <00>
> DMV11's/DMP11's ?   <00>
> IBM 3271 or 2780/3780 simultaneous links ?  <00>
> RJ2780 support ?
> 
> In looking at the AA-2669J-TC_RSTS-E_System_Installation_and_Update_Guide.pdf 
> file, page 49. It has this to say about the IBM 3271 or 2780/3780 option 
> (sounds like an alternative device to the DZ?):
> 
> Explanation - Each KMC-11 microprocessor controls one DUP11 synchronous line 
> interface to the 3271 or 2780/3780 host... and so on.
> 
> My questions are:
> Does SimH support the KMC-11/DUP11 pairing somehow?
> Or is there another suitable device available in SimH for providing access to 
> RSTS/E via telnet?
> If so, what are the device names on the SimH side and the RSTS/E side of 
> things?

KMC/DUP are used for the 2780 emulation feature, which is a rather obscure 
layered product -- I don't know anything about it.

As of RSTS V9.0, if memory serves, terminal configuration is no longer set 
during Sysgen.  Instead, the monitor contains drivers for each supported 
terminal interface, and these are loaded at startup according to what hardware 
was found.

When you boot the system (at the "Start timesharing" prompt) enter "hardware 
list" to confirm that the DZ11s were indeed seen:

Start timesharing?  HA LI

  Name  Address Vector  Comments
  TT0:   177560   060   
  RL0:   174400   160   Units: 0(RL01) 1(RL01)
  RM0:   177440   210   Units: 0(RK06) 1(RK06) 2(RK06) 3(RK06) 4(RK06) 5(RK06)
   6(RK06) 7(RK06)
  RU0:   172150  P340   RQDX3   Units: 0(RA82) 1(RA82) 2(RD54) 3(RX50)
  MU0:   174500  P344   TK50Units: 0(TK50) 1(TK50) 2(TK50) 3(TK50)
  TU0:   172440   224   BAE=+034, Units: 0(TE16 @TM03 #0) 1(TE16 @TM03 #0) 
  TC0:   177340   214
  LP0:   177514   200
  DZ0:   160100   300   Sub-lines: 8
  DZ1:   160110   310   Sub-lines: 8
  DZ2:   160120   320   Sub-lines: 8
  DZ3:   160130   330   Sub-lines: 8
  XE0:   174510   120   DELUA Address: 08-00-2B-CC-DD-EE

  KW11L  177546   100
  SR 177570
  DR 177570

  Hertz = 60.

  Other: FPU, SL, 22-Bit, Data space, Cache w/address, System ID = 4660


Option:  

Next... I don't know why you expected telnet ports 10001-10007 to be active 
when you attached 10001.  The attach command sets up just that TCP port number 
as one SIMH listens to, serving all the mux ports behind it.  So you should be 
able to telnet to the port you specified multiple times, and when you do, SIMH 
should tell you that you're now connected to some port:

pkoning$ telnet localhost 
Trying ::1...
Connected to localhost.
Escape character is '^]'.


Connected to the PDP-11 simulator DZ device, line 1


RSTS P10.1-L 31-Dec-15 02:41 PM
User: 
User: 1,211
Last interactive login on 31-Dec-15, 02:41 PM at KB5:
Last non-interactive login on 02-Apr-15, 04:31 PM
2 other users are logged in under this account


$ 

The other point to remember is that RSTS expects to do auto baud on all ports 
other than 0, in the standard setup at least.  So you need to enter RETURN 
twice before you get the login prompt.
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

[Simh] SIMH console settings for escape sequence support

2015-12-31 Thread Paul Koning
I've noticed that terminal handling on the SIMH console with RSTS/E was never 
quite right; it would not do "set terminal/inquire" and editing keys that 
produce escape sequences would be mangled.

This turns out to be due to the "printable control characters" configuration 
setting.  Its default value does not include ESC as a printable character, so 
it gets discarded rather than sent to the terminal window.

To fix this, use the following SIMH command:

set console pchar=0123600

With that setting, escape sequences work properly on the console.  Something 
similar probably applies to other operating systems and processor types, if 
they use escape sequences on the console terminal.  The pchar value is octal on 
PDP11 and other machines that are conventionally octal; it's hex on VAX and 
other hex machines, so adjust the "set" command accordingly.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Multiple telnet ports in SimH to RSTS/E 9.6

2015-12-31 Thread Paul Koning

> On Dec 31, 2015, at 3:10 PM, Will Senn  wrote:
> 
> ...
> Paul Koning set me straight on figuring out that DZ, as configured, was 
> actually working. Duh, press RETURN twice to get BAUD detected properly, then 
> all is right in the world. The other devices might work too, but since DZ 
> worked, I'm happy.

In late versions of RSTS/E, the following are supported: DL11 and equivalent, 
DH11, DZ11 DHV11, DHU11.  

DC-11 support existed in RSTS V4A, not sure about later.  I don't remember that 
DJ11 support was ever done.  Also note that V4A supports only single line 
interfaces (KL11, DL11, DC11, DL11-E); mux support arrived in RSTS/E V5A.

Originally you specified the terminal configuration with SYSGEN.  As I 
mentioned, that disappeared at a late stage; I believe in V9.0 but I may be off 
a bit.  If SYSGEN asks, you need to answer; if a particular version doesn't ask 
about terminals, that means it has terminal autoconfiguration at boot time.

Something related: RSTS/E knows how to find devices at boot time and disables 
anything configured that isn't actually present.  That appeared in RSTS V5B.  
Before that time, you had to be careful in SYSGEN *not* to specify non-existent 
devices, because RSTS would try to reference them and crash.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Multiple telnet ports in SimH to RSTS/E 9.6

2015-12-31 Thread Paul Koning

> On Dec 31, 2015, at 3:31 PM, Will Senn  wrote:
> 
> 
> 
> On 12/31/15 2:26 PM, Paul Koning wrote:
>>> On Dec 31, 2015, at 3:10 PM, Will Senn  wrote:
>>> 
>>> ...
>>> Paul Koning set me straight on figuring out that DZ, as configured, was 
>>> actually working. Duh, press RETURN twice to get BAUD detected properly, 
>>> then all is right in the world. The other devices might work too, but since 
>>> DZ worked, I'm happy.
>> In late versions of RSTS/E, the following are supported: DL11 and 
>> equivalent, DH11, DZ11 DHV11, DHU11.
>> 
>> DC-11 support existed in RSTS V4A, not sure about later.  I don't remember 
>> that DJ11 support was ever done.  Also note that V4A supports only single 
>> line interfaces (KL11, DL11, DC11, DL11-E); mux support arrived in RSTS/E 
>> V5A.
>> 
>> Originally you specified the terminal configuration with SYSGEN.  As I 
>> mentioned, that disappeared at a late stage; I believe in V9.0 but I may be 
>> off a bit.  If SYSGEN asks, you need to answer; if a particular version 
>> doesn't ask about terminals, that means it has terminal autoconfiguration at 
>> boot time.
>> 
>> Something related: RSTS/E knows how to find devices at boot time and 
>> disables anything configured that isn't actually present.  That appeared in 
>> RSTS V5B.  Before that time, you had to be careful in SYSGEN *not* to 
>> specify non-existent devices, because RSTS would try to reference them and 
>> crash.
>> 
>>  paul
>> 
> 
> Is there a noticeable advantage of one over the other in SimH of using DL11, 
> DH11, DZ11, DHV11 or DHU11?

Not likely.  RSTS runs at blinding speed in emulation no matter what you use.  
DH/DHV/DHU have DMA output which means fewer interrupts.  On a real PDP11 with 
very high output demands, that can make a clear difference.  For example, the 
internal DEC tools used to control systems under test in manufacturing used 
RSTS, and specifically with DH mux interfaces because of the large output 
bandwidth required.  But for most applications you're not likely to notice, and 
that's especially true in emulation.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Multiple telnet ports in SimH to RSTS/E 9.6

2015-12-31 Thread Paul Koning

> On Dec 31, 2015, at 3:42 PM, Mark Pizzolato  wrote:
> 
> On Thursday, December 31, 2015 at 12:07 PM, Will Senn wrote:
>> On 12/31/15 1:52 PM, Paul Koning wrote:
>>> KMC/DUP are used for the 2780 emulation feature, which is a rather
>>> obscure layered product -- I don't know anything about it.
>> 
>> First, I should say that my knowledge of RSTS/E is limited to a half day of
>> trying it out. I appreciate your telling me that you don't know anything 
>> about
>> this particular device either. It may seem insignificant, but it helps me
>> categorize things as I learn to know if I should know it or it is actually 
>> obscure.
> 
> The KMC/DUP may have been useful for 2780 emulation with real hardware, 
> but it is ONLY there for simulator to simulator DECnet connections now.

I wonder if it would actually work with 2780 emulation -- connecting the SIMH 
emulated DUP with whatever a 2780 ports looks like in a simulated IBM/360.  

As for DECnet, yes indeed.  Note though that RSTS/E does not support that 
combination for DECnet; the only DECnet devices it supports are DMC11 (from the 
start), DMV11 and DMP11 (V7.1 and up), Ethernet (V9.3 and up), and software 
DDCMP on terminal ports (not clearly supported but present if you dig enough 
(V9.6 to some extent, V10.0 in cleaner form).  So synchronous DDCMP is DMC and 
friends only (unless you count the Pro printer/console USART work I did as a 
midnight project in V9.6).

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] SIMH console settings for escape sequence support

2015-12-31 Thread Paul Koning

> On Dec 31, 2015, at 3:44 PM, Random832  wrote:
> 
> Paul Koning  writes:
>> I've noticed that terminal handling on the SIMH console with RSTS/E
>> was never quite right; it would not do "set terminal/inquire" and
>> editing keys that produce escape sequences would be mangled.
> 
> Speaking of escape sequences, for systems that don't use terminals
> (i.e. Windows) it might be nice for simh to have built-in emulation for
> something simple like a VT-52 or an ADM-3A. Or maybe have a telnet
> console.

You could use a telnet console with a telnet client that supports terminal 
emulation, like PuTTY.  On other systems this tends not to be an issue because 
the standard shell windows normally have terminal emulation support (they do on 
Linux, Mac, etc.).

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] SIMH console settings for escape sequence support

2016-01-01 Thread Paul Koning

> On Dec 31, 2015, at 3:17 PM, Paul Koning  wrote:
> 
> I've noticed that terminal handling on the SIMH console with RSTS/E was never 
> quite right; it would not do "set terminal/inquire" and editing keys that 
> produce escape sequences would be mangled.
> 
> This turns out to be due to the "printable control characters" configuration 
> setting.  Its default value does not include ESC as a printable character, so 
> it gets discarded rather than sent to the terminal window.
> 
> To fix this, use the following SIMH command:
> 
> set console pchar=0123600
> 
> With that setting, escape sequences work properly on the console.  Something 
> similar probably applies to other operating systems and processor types, if 
> they use escape sequences on the console terminal.  The pchar value is octal 
> on PDP11 and other machines that are conventionally octal; it's hex on VAX 
> and other hex machines, so adjust the "set" command accordingly.

More... it occurs to me that many operating systems and/or applications do 
their own filtering of control characters, so in fact a good setting for the 
pchar mask is all ones.  In other words, 377 octal or  hex 
depending on the simulated machine.

I wonder if that should be the default, instead of 23600. 

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] SIMH console settings for escape sequence support

2016-01-01 Thread Paul Koning

> On Dec 31, 2015, at 7:19 PM, Mark Pizzolato  wrote:
> 
> On Thursday, December 31, 2015 at 12:18 PM, Paul Koning wrote:
>> I've noticed that terminal handling on the SIMH console with RSTS/E was
>> never quite right; it would not do "set terminal/inquire" and editing keys 
>> that
>> produce escape sequences would be mangled.
>> 
>> This turns out to be due to the "printable control characters" configuration
>> setting.  Its default value does not include ESC as a printable character, 
>> so it
>> gets discarded rather than sent to the terminal window.
>> 
>> To fix this, use the following SIMH command:
>> 
>> set console pchar=0123600
>> 
>> With that setting, escape sequences work properly on the console.
>> Something similar probably applies to other operating systems and processor
>> types, if they use escape sequences on the console terminal.  The pchar
>> value is octal on PDP11 and other machines that are conventionally octal; 
>> it's
>> hex on VAX and other hex machines, so adjust the "set" command
>> accordingly.
> 
> Thanks for pointing this out.  
> 
> The PCHAR mask is actually only used when the terminal device (console) 
> is in 7B or UC mode.  The PDP11 defaults to 7B mode.  The VAX simulators 
> default to 8B mode.  

Oh.  That doesn't seem to be a documented interaction.

> In the interest of fewer problems in the future for various folks, the 
> default PCHAR mask has now been changed to include ESC and ENQ in 
> addition to the previous BEL, BS, TAB, LF and CR.  The output produced
> by SHOW CONSOLE PCHAR has also been enriched to display the names
> of the characters which are included in the mask.

Nice.  Thanks.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Multiple telnet ports in SimH to RSTS/E 9.6

2016-01-01 Thread Paul Koning

> On Jan 1, 2016, at 4:56 PM, Will Senn  wrote:
> 
> 
> 
> On 12/31/15 2:10 PM, Will Senn wrote:
>> 
>> Paul Koning set me straight on figuring out that DZ, as configured, was 
>> actually working. Duh, press RETURN twice to get BAUD detected properly, 
>> then all is right in the world. The other devices might work too, but since 
>> DZ worked, I'm happy.
>> 
>> Thanks for responding.
>> 
>> Will
>> 
> Oh. And one other thing. Not only do you have to press enter twice, for BAUD 
> rate, but the main console session has be be started and timesharing/system 
> startup has to be finished before you can attach another telnet session. I 
> think this may have been the problem I was having originally rather than the 
> BAUD rate. I had started the telnet session and booted the disk, but I hadn't 
> started timesharing, when I fired up telnet on port 10001.

That makes sense.  Until you've started timesharing, you're in a program called 
INIT, which is essentially the RSTS OS loader.  It's a standalone program that 
talks only to the console, as well as the disks on which RSTS lives (and, in 
limited ways, the  tape drives for accessing RSTS kit tapes).   None of the 
other terminal lines are enabled at that time.

If you say "Start" for "start timesharing" (instead of just entering Return or 
"Yes") it does a somewhat more verbose startup which tells you about each 
controller that's disabled because it's not visible.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Multiple telnet ports in SimH to RSTS/E 9.6

2016-01-02 Thread Paul Koning

> On Jan 2, 2016, at 6:20 AM, Johnny Billquist  wrote:
> 
> On 2016-01-01 23:01, Paul Koning wrote:
>> 
>>> On Jan 1, 2016, at 4:56 PM, Will Senn  wrote:
>>> 
>>> 
>>> 
>>> On 12/31/15 2:10 PM, Will Senn wrote:
>>>> 
>>>> Paul Koning set me straight on figuring out that DZ, as configured, was 
>>>> actually working. Duh, press RETURN twice to get BAUD detected properly, 
>>>> then all is right in the world. The other devices might work too, but 
>>>> since DZ worked, I'm happy.
>>>> 
>>>> Thanks for responding.
>>>> 
>>>> Will
>>>> 
>>> Oh. And one other thing. Not only do you have to press enter twice, for 
>>> BAUD rate, but the main console session has be be started and 
>>> timesharing/system startup has to be finished before you can attach another 
>>> telnet session. I think this may have been the problem I was having 
>>> originally rather than the BAUD rate. I had started the telnet session and 
>>> booted the disk, but I hadn't started timesharing, when I fired up telnet 
>>> on port 10001.
>> 
>> That makes sense.  Until you've started timesharing, you're in a program 
>> called INIT, which is essentially the RSTS OS loader.  It's a standalone 
>> program that talks only to the console, as well as the disks on which RSTS 
>> lives (and, in limited ways, the  tape drives for accessing RSTS kit tapes). 
>>   None of the other terminal lines are enabled at that time.
>> 
>> If you say "Start" for "start timesharing" (instead of just entering Return 
>> or "Yes") it does a somewhat more verbose startup which tells you about each 
>> controller that's disabled because it's not visible.
> 
> If I read Will right, it does not make sense. Yes, you will not get any 
> response until timesharing have started, but you should be able to telnet 
> into the port as soon as simh has started. And once timesharing is running, 
> you should be able to get a response. I don't think there is any reason why 
> you would have to have even doing the telnet until timesharing have started. 
> I know that you don't have to wait under RSX.

Yes, it would seem reasonable that the telnet connection would go through.  And 
indeed it does.  I just ran that test.

Specifically, what happens when a RSTS system is in INIT: the telnet server in 
SimH accepts the connection, as usual.  But you do NOT get the "Connected to 
the PDP-11 simulator DZ device, line 0" message.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Error in DMC11/DMR11 Emulation in RSTS/E 10.1

2016-01-03 Thread Paul Koning

> On Jan 2, 2016, at 5:41 PM, Christian Gauger-Cosgrove 
>  wrote:
> 
> As the subject line says, there's an issue with the DMC device under
> RSTS/E 10.1-L.
> 
> When starting the system, when it does the hardware scan, the
> following errors are printed on the TTI/TTO console:
> Device XM2: internal micro-diagnostic failure - device disabled.
> Device XM3: internal micro-diagnostic failure - device disabled.
> XM4: is missing ECO's, but will still function.
> XM1: is missing ECO's, but will still function.
> XM0: is missing ECO's, but will still function.
> 
> There are five DMC lines due to testing.
> DMC0/XM0 and DMC1/XM1 are DMC11, with micro-diagnostics enabled.
> DMC2/XM2 is a DMR11, with micro-diagnostics enabled.
> DMC3/XM3 is a DMR11, with micro-diagnostics disabled.
> DMC4/XM4 is a DMC11, with micro-diagnostics disabled.
> From that test we can see that the DMR11 does not work under RSTS/E
> with or without micro-diagnostics; and further that DMC11 simulation
> works but isn't "up to date" enough for RSTS/E 10.1-L (at least I'm
> assuming that is what is meant by the "missing ECO's" statement).

No, that's not what that means.

It does say that micro diagnostics are required; when those are disabled, the 
device is rejected because of that failure.

However, it also says that "XM0: is missing ECO's, but will still function."  
That means the device is enabled, and it should be there and work when you 
start the system.  More precisely, if it doesn't work that would be for a 
different reason.

> 
> It exhibits this behaviour both when starting up SYSGEN.SIL, and when
> doing a normal system start-up. The simulator is configured as a
> UNIBUS machine (11/94 if that matters); trying it with a QBUS machine
> (11/93)... and SIMH crashes promptly.

Tried what with QBus?  DMC?  Only a DMV is valid on Qbus.

Mark, here is the code from the RSTS INIT code that generates the "missing 
ECO's" message.  I'll take a look at why it doesn't like DMR11s.

paul


.SBTTL  Check the Micro-code for latest ECO level

;   This routine reads out the micro-code from the roms, and
;   compares them with the last ECO'ed roms that went out.  This
;   happened in the late 1970's, and then the device was replaced
;   by DMR's, so there should be no need to change this routine
;   in the future, however, if there is a new DMC rom ECO, this
;   the two copies of the DMC micro-code will need to be updated
;   to reflect the then current micro-code listings.
;
;   This routine expects:
;
;   R3 = The CSR of the unit to check
;
;   and must preserve:
;
;   R0 = The unit number *2
;

ECOCHK: MOV R0,-(SP);PRESERVE THE UNIT # *2
CLR R0  ;SET A STARTING ADDRESS
MOV #3,R4   ;TWO CHANCES TO MATCH MICRO-CODE (2 BITS)
MOV #HICOD,R1   ;HIGH SPEED MICRO CODE ADDRESS
MOV #LOCOD,R2   ;LOW SPEED MICRO CODE ADDRESS
10$:MOVB#ROMI,BSEL1(R3) ;SET UP FOR A ROMI
MOV #100400,-(SP)   ;SET THE INSTRUCTION TO USE
BIS R0,(SP) ;  AND NOW THE ADDRESS
MOV (SP)+,SEL6(R3)  ;PUT THE INSTRUCTION IN,
BISB#MSTEP!ROMI,BSEL1(R3) ;  AND EXECUTE IT
MOVB#ROMO,BSEL1(R3) ;NOW CLEAR THE BITS
MOV SEL6(R3),R5 ;GET THE MICRO-CODE FROM THAT ADDRESS
CLRBBSEL1(R3)   ;AND CLEAR THE CSR
CMP R5,(R1)+;MATCH THE HIGH ONE?
BEQ 20$ ; YES, SO CONTINUE  
BIC #1,R4   ;NOT HIGH SPEED, SO CLEAR THE HIGH SPEED BIT
20$:CMP R5,(R2)+;MATCH THE LOW ONE?
BEQ 30$ ; YES, SO CONTINUE
BIC #2,R4   ;NOT LOW SPEED SO CLEAR THE LOW SPEED BIT
30$:TST R4  ;DID EITHER ONE MATCH?
BEQ 100$;NEITHER ONE MATCHES, SO QUIT RIGHT NOW
CMP R1,#LOCOD   ;END OF HIGH CODE?
BHIS35$ ; YES, SO QUIT EARLY
.ASSUME LOCOD GT HICOD  ;THE LOW TABLE MUST COME AFTER THE HIGH ONE
INCBR0  ;INC
BNE 10$ ;DIDN'T WRAP YET, SO GO SOME MORE
ADD #4000,R0;  TO WHERE THEY BELONG
CMP #2,R0   ;ARE WE DONE YET?
BNE 10$ ;NO, SO GO HIT THE NEXT ADDRESS.
35$:MOV (SP)+,R0;RESTORE THE UNIT # *2
ROR R4  ;MOVE LOW BIT INTO 'C' BIT
BCC 40$ ;  NOT THE HIGH SPEED
ROR R4  ;IT BETTER NOT BE BOTH (LOOK AT NEXT BIT)
BCS 60$ ;OH NO, ITS BOTH
BIS #4,TYPTBL+XM.CSO(R0) ;SET THE TYPE BIT (high)
40$:ROR R4  ;IS IT THE LOW SPEED? (CHECK BIT #1)
BCC 50$ ;  NO
BIS #10,TYPTBL+XM.CSO(R0) ;SET THE TYPE BIT (low)
50$:
60$:RETURN

100$:   MOV (SP),R0 ;GET THE UNIT # * 2
ASR

Re: [Simh] exit fig-forth monitor in RST/E

2016-01-03 Thread Paul Koning

> On Jan 3, 2016, at 3:48 PM, Christian Gauger-Cosgrove 
>  wrote:
> 
> On 3 January 2016 at 14:20, Johnny Billquist  wrote:
>> I never saw the FORTH RTS, but that is pretty cool. I'm absolutely sure
>> there must be a way to switch to another RTS from the FORTH RTS as well.
>> You'll just have to search documentation, experiment, search for strings in
>> the binary, and other creative things.
>> 
>> Tried something like "SWITCH DCL"? :-)
>> 
> That doesn't work. I should know, I've tried a lot to try and leave
> FIG-FORTH on my own RSTS/E system.
> 
> The kludge-tastic way I usually exit the FORTH RTS is by using it on a
> multiplexer line and issuing HANGUP KBn: from an operator account on
> KB0:; it works but it's a horrible, horrible way of doing it.

I wonder if it's documented in some obscure spot, or if we neglected to do so.  
The answer is: the word "CCL" passes the string that follows to RSTS as a 
command to execute.  So any CCL command (anything added with 
define/command/system) will work.  Normally "switch" is such a command, so you 
would do "ccl switch" (or the equivalent "ccl switch dcl").

> I suspect there's a reason that FORTH.RTS is sitting in UNSUPP$:
> (unsupported utilities)...

Actually, it's because I ported it to RSTS as an internal tool, and managed to 
get it shipped so long as DEC wouldn't have to support it.  There are two FORTH 
programs that should be included: one is ODT which is like the Basic ODT tool 
except that it handles large files, and the other is SDA which is an 
interactive crashdump analyzer inspired by (but not derived from) the VMS tool 
by that name.  I don't remember if the sources are distributed; if not, SDA 
does have a HELP command that should give you some ideas.

This Forth implementation is a port of Fig-FORTH by John S. James, with some 
RSTS-specific magic added.  I just realized the file header says that it is in 
the public domain, so I suppose I should post the source...

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Configuring DMC11 Devices

2016-01-03 Thread Paul Koning

> On Jan 3, 2016, at 1:46 PM, Christian Gauger-Cosgrove 
>  wrote:
> 
> Well, I was attempting it with RSTS/E since the "XM0: is missing
> ECO's, but will still function." error implies that the DMC11 device
> would still function. I turned on debug for the DMC device using "SET
> DMC DEBUG" and nothing seems to be getting printed even though the DMC
> device is being "used" by RSTS/E.

You need to specify a debug output file, for example "set debug stdout".

With that, I see the following:

DBG(4762921805)> DMC REG: dmc_rd(DMC0), addr=0x003fe038, SEL0, data=0x8000
DBG(4762921808)> DMC REG: DMC0: Getting SEL0 (0x8000) RUN 
DBG(4762921808)> DMC REG: dmc_rd(DMC0), addr=0x003fe038, SEL0, data=0x8000
DBG(4762921817)> DMC REG: DMC0: Getting SEL0 (0x8000) RUN 
DBG(4762921817)> DMC REG: dmc_rd(DMC0), addr=0x003fe038, SEL0, data=0x8000
DBG(4762921820)> DMC REG: DMC0: Getting SEL0 (0x8000) RUN 
DBG(4762921820)> DMC REG: dmc_rd(DMC0), addr=0x003fe038, SEL0, data=0x8000
DBG(4762921827)> DMC REG: dmc_wr(DMC0), addr=0x003fe038, SEL0, newdata=0x4000, 
olddata=0x8000
DBG(4762921827)> DMC REG: DMC0: Setting SEL0 (0x4000) MCLR 
DBG(4762921830)> DMC REG: dmc_wr(DMC0), addr=0x003fe03e, SEL6, newdata=0xa40b, 
olddata=0x
DBG(4762921830)> DMC REG: DMC0: Setting SEL6 (0xa40b)
DBG(4762921831)> DMC REG: dmc_wr(DMC0), addr=0x003fe039, BSEL1, newdata=82, 
olddata=0x40
DBG(4762921831)> DMC REG: DMC0: Setting SEL0 (0x8200) RUN ROMI 
DBG(4762921837)> DMC TRACE: dmc_svc(DMC0)
DBG(4762925339)> DMC REG: dmc_wr(DMC1), addr=0x003fe040, SEL0, newdata=0x4000, 
olddata=0x8200
DBG(4762925339)> DMC REG: DMC1: Setting SEL0 (0x4000) MCLR 
DBG(4762925342)> DMC REG: dmc_wr(DMC1), addr=0x003fe046, SEL6, newdata=0xa40b, 
olddata=0xa40b
DBG(4762925342)> DMC REG: DMC1: Setting SEL6 (0xa40b)
DBG(4762925343)> DMC REG: dmc_wr(DMC1), addr=0x003fe041, BSEL1, newdata=82, 
olddata=0x40
DBG(4762925343)> DMC REG: DMC1: Setting SEL0 (0x8200) RUN ROMI 
DBG(4762925349)> DMC TRACE: dmc_svc(DMC1)
DBG(4763203477)> DMC REG: dmc_wr(DMC0), addr=0x003fe038, SEL0, newdata=0x4000, 
olddata=0x8200
DBG(4763203477)> DMC REG: DMC0: Setting SEL0 (0x4000) MCLR 
DBG(4763203480)> DMC REG: dmc_wr(DMC0), addr=0x003fe03e, SEL6, newdata=0xa40b, 
olddata=0xa40b
DBG(4763203480)> DMC REG: DMC0: Setting SEL6 (0xa40b)
DBG(4763203481)> DMC REG: dmc_wr(DMC0), addr=0x003fe039, BSEL1, newdata=82, 
olddata=0x40
DBG(4763203481)> DMC REG: DMC0: Setting SEL0 (0x8200) RUN ROMI 
DBG(4763203487)> DMC TRACE: dmc_svc(DMC0)


Event type 4.11, Circuit initialization failure - circuit fault
Occurred 20-Dec-28 17:13:27.0 on node 1.43 (SIMH43)
Circuit DMC-1
Reason = Circuit synchronization lost
Adjacent node address = 0

  

Event type 4.11, Circuit initialization failure - circuit fault
Occurred 20-Dec-28 17:13:27.0 on node 1.43 (SIMH43)
Circuit DMC-0
Reason = Circuit synchronization lost
Adjacent node address = 0

  DBG(5118754449)> DMC TRACE: dmc_poll_svc()



That is with two DMCs pointing at each other:

sim> show dmc
DMC lines=2, connectpoll=2, address=17760070-17760107*
vector=300*, 2 units
  DMC0  attached to 10143, peer=127.0.0.1:11043, speed=0 (unrestricted)
MicroDiag=enabled, type=DMC
  DMC1  attached to 11043, peer=127.0.0.1:10143, speed=0 (unrestricted)
MicroDiag=enabled, type=DMC


paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] exit fig-forth monitor in RST/E

2016-01-03 Thread Paul Koning

> On Jan 3, 2016, at 4:56 PM, Paul Koning  wrote:
> 
> ...
> This Forth implementation is a port of Fig-FORTH by John S. James, with some 
> RSTS-specific magic added.  I just realized the file header says that it is 
> in the public domain, so I suppose I should post the source...

So the question would be: where should it go?  Bitsavers?  trailing-edge.com?

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Error in DMC11/DMR11 Emulation in RSTS/E 10.1

2016-01-03 Thread Paul Koning

> On Jan 3, 2016, at 6:42 PM, Christian Gauger-Cosgrove 
>  wrote:
> 
> On 3 January 2016 at 16:42, Paul Koning  wrote:
>> No, that's not what that means.
>> 
>> It does say that micro diagnostics are required; when those are disabled, 
>> the device is rejected because of that failure.
>> 
> Note that XM0 and XM1 provide the same "XMn: is missing ECO's, but
> will still function" as XM4; and XM4 has the micro-diagnostics
> DISABLED all three of those devices are TYPE=DMC and INIT accepted all
> three. The rejected devices are XM2 and XM3 which were defined as
> TYPE=DMR (one with and one without micro-diagnostics).

Ok, I misread it.  Will investigate why RSTS INIT doesn't like the current DMR 
emulation.

>> However, it also says that "XM0: is missing ECO's, but will still function." 
>>  That means the device is enabled, and it should be there and work when you 
>> start the system.  More precisely, if it doesn't work that would be for a 
>> different reason.
>> 
> I was assuming that the "XM0: is missing ECO's, but will still
> function." error meant that the specific DMC11 (since the DMR11
> doesn't work) would still function, even though the micro diagnostics
> aren't the latest revision. At least if I'm not misremembering aren't
> ECOs revisions to the device (hardware, microcode, or both)? (Or have
> I completely gotten confused.)

What's going on is that it reads the microcode ROM (or a portion of same) and 
compares it against an expected content.  If no match,  you get that message.

>> Tried what with QBus?  DMC?  Only a DMV is valid on Qbus.
>> 
> Yes, I tried to use the DMC with QBUS. Somehow, don't ask me how, but
> I got SIMH into a state where the DMC was enabled on a QBUS (11/93)
> machine... SIMH promptly crashed hard one made to start (told it to
> boot a device... and crash) as one should expect from abusing it like
> that. So that can be an ignored issue perhaps.

It ought to be rejected since it's not a valid configuration.

> Also, correct me if I'm wrong: There is no emulation of the DMV11,
> isn't there? Only QBUS DDCMP device I see is the DPV11 (which I'd like
> to point out: Doesn't work in RSTS/E as far as I've seen).

Correct, DPV won't work.  The only supported DDCMP devices are DMC, DMR, and 
DMP (all Unibus) and DMV (Qbus).  DMP and DMV are close relatives; they are 
similar to DMR but with the addition of multipoint support.  It doesn't look 
like they are emulated in SIMH.  Doing so for the point to point subset would 
probably not be all that hard; multipoint is a different matter entirely and 
probably not worth the trouble.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] exit fig-forth monitor in RST/E

2016-01-03 Thread Paul Koning

> On Jan 3, 2016, at 7:20 PM, Christian Gauger-Cosgrove 
>  wrote:
> 
> ...
> That's neat learning the history of it. I didn't know why DEC had
> included a FORTH RTS nor what the SDA.4TH program actually was (I had
> guessed that ODT.4TH was related in some what to ODT). It appears that
> the SDA source is in UNSUPP$:, namely SDA.FTH. I don't see the ODT
> source however.

That reminded me of something I had forgotten: SDA reads its help messages out 
of its own source file, so the source file is included in order for the help 
command to work.

ODT doesn't need this; it doesn't have a help facility like that.  Here is the 
header from the source; that lists what's different in comparison with ODT.BAS 
(which is documented in the standard RSTS manuals).

paul

\
\   O D T . F T H
\
\ This program is a FORTH implementation of the standard RSTS utility
\ ODT.TSK, with some enhancements.  The additional features are:
\
\   1. Double-length arithmetic -- all arithmetic (addressing
\  and expression evaluation) is done in 32-bits
\   2. Access to all of memory -- you get both read and write (CAUTION!!!)
\  access to all of memory (via .PLAS), not just to lowcore.
\   3. Interpretation of directory links for NFS access.  The D command
\  (was Control/D in ODT.TSK) works no matter how you're accessing
\  the directory.
\   4. New K command.  The K command takes a DCN, and prints the
\  corresponding byte address.  Alternatively, you can type K
\  when a location is open; this causes the first word of the
\  DCN addressed by that word to be opened.  Handy when following
\  DCN pointers in NFS access to directories.

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Error in DMC11/DMR11 Emulation in RSTS/E 10.1

2016-01-03 Thread Paul Koning

> On Jan 3, 2016, at 6:42 PM, Christian Gauger-Cosgrove 
>  wrote:
> 
> On 3 January 2016 at 16:42, Paul Koning  wrote:
>> No, that's not what that means.
>> 
>> It does say that micro diagnostics are required; when those are disabled, 
>> the device is rejected because of that failure.
>> 
> Note that XM0 and XM1 provide the same "XMn: is missing ECO's, but
> will still function" as XM4; and XM4 has the micro-diagnostics
> DISABLED all three of those devices are TYPE=DMC and INIT accepted all
> three. The rejected devices are XM2 and XM3 which were defined as
> TYPE=DMR (one with and one without micro-diagnostics).

I found why.  In pdp11_dmc.c, if a master clear is done on a DMR that is not 
currently attached, a micro-diagnostic failure status is posted.  

I'm not sure if that's a good idea.  In RSTS, this test happens at boot, and if 
at that time you're not attached, the device will be disabled because of that 
failure status.  Attaching later on then won't help.  It may be better for 
unattached to produce some more benign status (or, perhaps, simply to result in 
no communication so DDCMP startup will time out in the same way it would if the 
remote system were down).

So attach the device in SIMH before boot, and things will work.

Note that micro-diagnostics must be ENABLED for RSTS to work.  If it sees them 
disabled, it tries again; if they are still disabled (which of course they will 
be) that is treated as a failure and the DMR will be disabled.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Configuring DMC11 Devices

2016-01-04 Thread Paul Koning

> On Jan 4, 2016, at 4:51 AM, Mark Pizzolato  wrote:
> 
> On Sunday, January 3, 2016 at 2:17 PM, Paul Koning wrote:
>> ...That is with two DMCs pointing at each other:
>> 
>> sim> show dmc
>> DMC  lines=2, connectpoll=2, address=17760070-17760107*
>>  vector=300*, 2 units
>>  DMC0attached to 10143, peer=127.0.0.1:11043, speed=0 (unrestricted)
>>  MicroDiag=enabled, type=DMC
>>  DMC1attached to 11043, peer=127.0.0.1:10143, speed=0 (unrestricted)
>>  MicroDiag=enabled, type=DMC
> 
> This configuration is very odd.  You've got DMC0 connecting to itself AND 
> you've got DMC1 also connecting to itself using the exact same ports as DMC0. 
>  I wouldn't expect this to ever work...

No, they are cross-connected.  I admit it is hard to read because of the 
similar looking port numbers.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Error in DMC11/DMR11 Emulation in RSTS/E 10.1

2016-01-04 Thread Paul Koning

> On Jan 4, 2016, at 5:09 AM, Mark Pizzolato  wrote:
> 
> On Sunday, January 3, 2016 at 5:25 PM, Paul Koning wrote:
>> ...
>> So attach the device in SIMH before boot, and things will work.
> 
> This is a basic requirement of functionality.  Having the DMC/DMR device 
> "ATTACHED" merely means that the desired peer endpoint is "described", not 
> the fact that a connection exists yet.  This is like having the device 
> connected to some sort of Modem/DSU.  The external wires on the DSU don't 
> need to be plugged into anything, but the modem must be present for the 
> network to have the "potential" to work at some time later.
> 
> This category of device isn't like a tape drive or a removable disk.  
> Dynamically attaching and detaching this device while a system is operating 
> is not a normal activity.  Users should merely provide the appropriate ATTACH 
> command immediately after enabling the device and describing the peer.

Ok, thanks.  So we'll want to document that RSTS requires the attach to have 
been done before booting (as well as that it has to have the microdiagnostics 
enabled).

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Error in DMC11/DMR11 Emulation in RSTS/E 10.1

2016-01-04 Thread Paul Koning

> On Jan 4, 2016, at 12:34 AM, Christian Gauger-Cosgrove 
>  wrote:
> 
> Just an addendum because I think I may not have been too clear:
> 
> On 4 January 2016 at 00:03, Christian Gauger-Cosgrove
>  wrote:
>> Also, this might be more my inexperience, but I can't seem to figure
>> out how to get DECnet to "speak" to the other machine.
>> 
> What I mean to say is, I can't seem to figure out a way to get the one
> host to connect to the other, mostly since I don't "know" DECnet that
> well. (I know what TLK and NET do.)
> 
> Trying NET:
> $ net HOUOU::HELLO
> ?Connect Failure - HOUOU is an unknown node.

DECnet (Phase IV and before) doesn't have anything like DNS.  (Phase V does.)  
So each system has its own set of node definitions, analogous to /etc/hosts on 
a Unix system.  That message indicates that HOUOU isn't a defined node name.

You can find the nodes that are defined by "NCP LIST KNOWN NODES".  You can 
define new entries:
$ ncp define node 7.7 name testme
$ ncp set node 7.7 name testme

"define" puts the name in the permanent database, which is used at startup to 
initialize the volatile database.  "set" puts the name in the volatile 
database.  Similarly, "list" reads the permanent, and "show" the volatile 
database.  The above is for RSTS; details vary slightly among implementations, 
in particular the notions of volatile and permanent database.

Another possible issue is that the name is defined but not reachable.  An 
endnode would not know until you try to connect; a routing node does know (at 
least for in-area nodes).  For example:
$ ncp sho kno node
Known Node Volatile Summary as of 4-JAN-16 10:21:26

Executor Node = 1.43 (SIMH43)

State  = On
Identification = DECnet/E V4.1
Active Links   = 0

Remote Node = 1.1 (PYTHON)

State  = Unreachable

Remote Node = 1.2 (TEST2)

State  = Unreachable
...

If you ask for "show active nodes" you get only the executor (local node) plus 
reachable nodes.  "known" means all nodes with a name (defined nodes) and/or 
reachable nodes (whether with a name or not).

Trying to connect to an unreachable node results in a connect error, for 
example:

$ net python
?Connect Reject - NSP reason code = 39

or

$ ncp loop node python

?Listener response - Mirror connect failed, Node unreachable
Messages not looped = 1.


paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Configuring DMC11 Devices

2016-01-04 Thread Paul Koning
It looks like the problems RSTS is having with DMC/DMR is due to unexpected 
behavior of the master clear bit.  It's documented as self-clearing, so the 
driver sets it and then subsequently assumes it will read as cleared.  That 
isn't actually happening correctly, at least not if two accesses are close 
together:

DBG(4466384761)> DMC REG: dmc_wr(DMC0), addr=0x003fe038, SEL0, newdata=0x4000, 
olddata=0x8200
DBG(4466384761)> DMC REG: DMC0: Setting SEL0 (0x4000) MCLR 
DBG(4466384764)> DMC REG: dmc_wr(DMC0), addr=0x003fe038, BSEL0, newdata=23, 
olddata=0x00
DBG(4466384764)> DMC REG: DMC0: Setting SEL0 (0x4023) MCLR RQI 

This is the driver doing a master clear, quickly followed by a Request In 
asking to set the Base address.  That second operation is a byte write to 
BSEL0, and it relies on MCLR being either write-only, or at least self-clearing 
fast enough.  In this case, clearly that is not working; MCLR is still set so 
the byte write sets not just RQI and BASEI, but also MCLR -- so RDYI is never 
set, the driver times out, and the cycle repeats.

This patch (hack?) fixes the issue, and now my two cross-connected DMCs 
successfully start:

diff --git a/PDP11/pdp11_dmc.c b/PDP11/pdp11_dmc.c
index e0e0111..6034683 100644
--- a/PDP11/pdp11_dmc.c
+++ b/PDP11/pdp11_dmc.c
@@ -3592,7 +3592,7 @@ else {
 
 if ((dmc_getsel(reg) == 0) || (dmc_getsel(reg) == 1)) {/* writes to SEL0 and 
SEL2 are actionable */
 if (0 == controller->dmc_wr_delay) {/* Not waiting? */
-controller->dmc_wr_delay = 10;  /* Wait a bit before acting on the 
changed register */
+controller->dmc_wr_delay = 1;  /* Wait a bit before acting on the 
changed register */
 sim_activate_abs (controller->unit, controller->dmc_wr_delay);
 }
 }

By the way, if I connect a DMC to a DMR, it doesn't come up.  Is that expected? 
 I thought DMC and DMR were sufficiently compatible that it would work...

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Configuring DMC11 Devices

2016-01-04 Thread Paul Koning

> On Jan 4, 2016, at 2:53 PM, Mark Pizzolato  wrote:
> 
>> ...
> 
> I vaguely remember that something else depends on how it is currently 
> implemented.  The wait delay was added to accommodate the fact that something 
> didn't expect immediate response.  A delay of 1 is essentially the same as no 
> delay.
> 
> It is hard to imagine that the OS driver would expect that the device would 
> complete some operation in one instruction time.  This would tend to fail as 
> newer models of CPU were implemented which used the same peripheral hardware, 
> no?

All I can say is that it does work on real hardware.

The manual says that the bit is "self-clearing".  That isn't the same words as 
the more common "write only" but it implies roughly the same thing.  The driver 
definitely does not expect the whole master clear process to complete in a few 
instruction times; it patiently waits for RUN to become set.  But it DOES 
expect that MCLR does not read back as set, not even very quickly after it was 
set by the driver.

So maybe the thing to do is have the process master clear action be started at 
the CSR write rather than delayed (while other CSR operations can remain 
delayed) so that at least the clear_master_clear part is done right away.

>> By the way, if I connect a DMC to a DMR, it doesn't come up.  Is that
>> expected?  I thought DMC and DMR were sufficiently compatible that it
>> would work...
> 
> They absolutely should work as long as the both get turned on by software.  
> The wire protocol is the same.  The wire protocol is also compatible to host 
> based DDCMP protocol implementations on the PDP10 and RSX since it can 
> reliably talk to KMC/DUP configurations.

Ok, that's what I figured.  The wire protocols in the real hardware are 
actually not identical (DDCMP 3.1 vs. DDCMP 4.0, and in the case of the "high 
speed" DMC-11, 3.1 with some bugs that I might still have documented 
somewhere).  But yes, they are supposed to be interoperable.

Will investigate what's going wrong.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] The minutiae of hardware/software interactions affecting SIMH

2016-01-05 Thread Paul Koning

> On Jan 5, 2016, at 10:13 AM, Armistead, Jason BIS  
> wrote:
> 
> On the topic of Configuring DMC11 Devices, while discussing wait delays Mark 
> Pizzolato recently wrote:
>  
> > Sounds reasonable.  I've got to see if I can find the reason the delay was 
> > initially added and make sure a change like this is compatible.
>  
> What is the “SIMH strategy” for documenting such requirements ? i.e. where 
> does this behavior get called out in the source code (or elsewhere) in a way 
> that will allow future generations of SIMH users and maintainers to 
> understand “why things are the way they are” or “why things need to be the 
> way they are” ?
>  
> There is one reference to the DDCMP protocol manual in the source of 
> pdp11_dmc.c, but that’s about it.  Should references to other documents be 
> added ?

Not sure.  DDCMP is directly relevant of course.  The other DECnet manuals are 
not; given that pdp11_dmc conforms to the DDCMP spec, the rest just works.  
(This is true for DECnet though not for most other protocols: the specs are 
usually sufficiently well written that conformance actually implies 
interoperability.  Not only is that rarely true elsewhere; a lot of protocol 
designers don't even want to admit that it should be a requirement of a good 
protocol spec!)

As for the internal details of why things are designed a certain way, it's rare 
to see that documented well in any software product.  Yes, that includes 
"professional/commercial" products.  To the extent that design specs exist at 
all -- rare enough, unfortunately -- they concentrate on what was done, not so 
much on why, and less still on what was considered and rejected, or done in the 
past and then changed.

For design details that can be a source of problems -- as in the one that 
triggered this discussion -- it would certainly be a good idea to have a 
paragraph comment in the source code mentioning it.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] RSTS/E 10.1-L and Paper tape

2016-01-05 Thread Paul Koning

> On Jan 5, 2016, at 5:07 PM, Will Senn  wrote:
> 
> All,
> 
> The simulated paper tape device is very handy to copy text around between a 
> host and simulated environment. My question for the group is, does RSTS/E 
> 10.1-L support the paper tape device? The documentation is sketchy about it 
> but does make a rare reference to PP: and PR: (help for SYSTAT for example), 
> but it wasn't a question during sysgen and I can't figure out how to copy 
> files to it. In RT-11, it's as simple as copy whatever PC: or copy PC: 
> whatever...

Yes, RSTS does support those.  I don't know why Sysgen doesn't ask.  It doesn't 
ask about DECtape, either.  Perhaps they are no longer officially supported, 
but the software should be there and it should work.

After running sysgen but before running the resulting sysgen.com script, edit 
config.mac.  Look for the line that mentions PR11 and change the 0 to 1, then 
the next line (PP11) also 0 change to 1.  While you're there, if you want 
DECtape, change TC11 (just above PR11) to be the number of DECtape drives.  
Typically that's an even number because a TU56 has two DECtape drives in it.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Configuring DMC11 Devices

2016-01-05 Thread Paul Koning

> On Jan 5, 2016, at 4:59 PM, Mark Pizzolato  wrote:
> 
> On Monday, January 4, 2016 at 12:06 PM, Paul Koning wrote:
>>> On Jan 4, 2016, at 2:53 PM, Mark Pizzolato  wrote:
>>> I vaguely remember that something else depends on how it is currently
>>> implemented.  The wait delay was added to accommodate the fact that
>>> something didn't expect immediate response.  A delay of 1 is essentially the
>>> same as no delay.
>>> 
>>> It is hard to imagine that the OS driver would expect that the device would
>>> complete some operation in one instruction time.  This would tend to fail as
>>> newer models of CPU were implemented which used the same peripheral
>>> hardware, no?
>> 
>> All I can say is that it does work on real hardware.
>> 
>> The manual says that the bit is "self-clearing".  That isn't the same words 
>> as
>> the more common "write only" but it implies roughly the same thing.  The
>> driver definitely does not expect the whole master clear process to complete
>> in a few instruction times; it patiently waits for RUN to become set.  But it
>> DOES expect that MCLR does not read back as set, not even very quickly
>> after it was set by the driver.
>> 
>> So maybe the thing to do is have the process master clear action be started
>> at the CSR write rather than delayed (while other CSR operations can remain
>> delayed) so that at least the clear_master_clear part is done right away.
> 
> Actually it seems that any number of things must consistently complete in one 
> or at most a couple of instructions.  If you look at the RSTS ROM checking 
> code:
> 
> ECOCHK:   MOV R0,-(SP);PRESERVE THE UNIT # *2
>   CLR R0  ;SET A STARTING ADDRESS
>   MOV #3,R4   ;TWO CHANCES TO MATCH MICRO-CODE (2 BITS)
>   MOV #HICOD,R1   ;HIGH SPEED MICRO CODE ADDRESS
>   MOV #LOCOD,R2   ;LOW SPEED MICRO CODE ADDRESS
> 10$:  MOVB#ROMI,BSEL1(R3) ;SET UP FOR A ROMI
>   MOV #100400,-(SP)   ;SET THE INSTRUCTION TO USE
>   BIS R0,(SP) ;  AND NOW THE ADDRESS
>   MOV (SP)+,SEL6(R3)  ;PUT THE INSTRUCTION IN,
>   BISB#MSTEP!ROMI,BSEL1(R3) ;  AND EXECUTE IT
>   MOVB#ROMO,BSEL1(R3) ;NOW CLEAR THE BITS
>   MOV SEL6(R3),R5 ;GET THE MICRO-CODE FROM THAT ADDRESS
>   CLRBBSEL1(R3)   ;AND CLEAR THE CSR
>   CMP R5,(R1)+;MATCH THE HIGH ONE?
>   BEQ 20$ ; YES, SO CONTINUE  
>   BIC #1,R4   ;NOT HIGH SPEED, SO CLEAR THE HIGH SPEED BIT
> 20$:  CMP R5,(R2)+;MATCH THE LOW ONE?
>   BEQ 30$ ; YES, SO CONTINUE
>   BIC #2,R4   ;NOT LOW SPEED SO CLEAR THE LOW SPEED BIT
> 30$:  TST R4  ;DID EITHER ONE MATCH?
>   BEQ 100$;NEITHER ONE MATCHES, SO QUIT RIGHT NOW
> 
> We've got 5 instructions in a row referencing the device registers.  A write, 
> a read-modify-write, a write, a read and a write.
> 
> I'm a software guy who knows how to simulate things.  I don't know how the 
> real hardware works, but unless there is some sort of interlocked behavior 
> with the DMC microcontroller it would seem that a sufficiently fast PDP11 
> would get ahead of the DMC.  No?

The thing to keep in mind is that BSEL1 is implemented in logic; it's not like 
the higher numbered registers that are just a dual ported memory manipulated by 
the KMC11 microcode.  The KMC11 reference manual spells some of this out; for 
example, you can't make sense of MSTEP and ROMI references in the driver from 
the DMC11 manual, you need the KMC11 manual for that.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] RSTS/E 10.1-L and Paper tape

2016-01-06 Thread Paul Koning

> On Jan 6, 2016, at 9:44 AM, Johnny Billquist  wrote:
> 
> ...
> As for transferring files to and from your RSTS/E system, you do know of 
> KERMIT, right? Telnet into the RSTS/E system, start a kermit server there, 
> switch back to your local kermit, and then send/receive files to your hearts 
> content.
> 
> Other options could be using a disk with the files on it, setting up tapes, 
> but also, if simh supports it, possibly using the virtual DOS device, that 
> other emulators have, as well as using DECnet.

I'm not sure what a DOS device is.

A couple of options:

1. DECnet.  NFT will use the DAP protocol to do file transfer; if you have a 
compatible DAP implementation at the other end that would work.  DECnet/Linux 
can do this, I believe.

2. Paper tape, as discussed here.

3. Magtape.  DOS format labels are very simple; ANSI isn't much harder.  For 
extra credit, someone could write an implementation of VMS BACKUP -- RSTS can 
read those tapes (with some restrictions) in V9.0 or later.

4. Disk.  Years ago I wrote a program "rstsflx" that can read and write RSTS 
disk images.  It should still be around; if not I should build some new kits 
and supply them to whoever can offer a place for them.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] RSTS/E 10.1-L and Paper tape

2016-01-06 Thread Paul Koning

> On Jan 6, 2016, at 10:59 AM, Timothe Litt  wrote:
> 
> On 06-Jan-16 10:51, Paul Koning wrote:
>> 4. Disk. Years ago I wrote a program "rstsflx" that can read and write
>> RSTS disk images. It should still be around; if not I should build
>> some new kits and supply them to whoever can offer a place for them. paul
> Please contribute tools to https://githubm.com/simh/simtools  There are
> tools for conversion and file manipulation.  rstsflx would go under
> 'extracters'. 

Will do.

> And if you have docs on on-disk formats, please make sure there's a copy
> on bitsavers in addition to any that you keep with your tool.

They are documented in the RSTS Internals Manual.  I have paper copies but I'm 
not going to let those out of my hands, because I don't want to have them 
disappear.  If someone wants them on bitsavers, go right ahead with your own 
copy.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] RSTS/E 10.1-L and Paper tape

2016-01-08 Thread Paul Koning

> On Jan 7, 2016, at 9:46 PM, Larry Baker  wrote:
> 
> ...
> I have two copies of the ANSI X3.27 standard: -1978 (version 3) and -1987 
> (version 4); -1969 was version 1, which I do not have.  The version number is 
> written as the last (80th) character of the VOL1 (the first) label on the 
> tape.  I'll bet most DEC systems implemented version 3.

RSTS/E does version 3.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] RSTS/E 10.1-L and Paper tape

2016-01-08 Thread Paul Koning

> On Jan 8, 2016, at 11:19 AM, khandy21yo  wrote:
> 
> 
> The programming manual that I foubd for rsrs.e documents it as 1.
> Thats the only documentation I have for the format, so went with what I had, 
> and compared it against rsts distribution tapes. Not ideal, but better than 
> nothing.

I should have been more specific.  According to the sources, RSTS V10.1 does 
ANSI label format version 3.  I don't know about older versions.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] RSTS/E 10.1-L and Paper tape

2016-01-08 Thread Paul Koning

> On Jan 8, 2016, at 2:13 PM, Clem Cole  wrote:
> 
> I asked our (Intel's) corporate librarians to see if they could find 
> X3.27-xxx and in particular -1969 (the original) and -1978 which was version 
> 3.   I agree with Paul, that V3 (-1978) was the version that most people 
> implemented. I seems to remember that, VMS started with V2 and upgraded to 3 
> - as I remember on VAX Serial #1 trying to read tapes from it on the 360 or 
> the Univac was funky.
> 
> I wish I could remember what changed between the versions.  I once knew, and 
> I've sent a note to one of my old housemates that wrote some of the VMS tape 
> support years ago.  He might remember/have some of this stuff.

I think, but this is a *very* vague memory, that one of the later additions was 
the addition of the century number to the date fields. Originally, ANSI labels 
were not Y2K compliant.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] VT100 Color of text

2016-01-09 Thread Paul Koning

> On Jan 9, 2016, at 11:58 AM, Will Senn  wrote:
> 
> All,
> 
> Having very vague recollects of having ever seen a real VT100, I came across 
> the following picture while doing some research on RT-11:
> 
> https://upload.wikimedia.org/wikipedia/commons/c/c2/RT-11_help.jpg
> 
> I was surprised a little by the color of the text. In my minds eye, I had 
> imagined either Amber or Green on black (the default on my Terminal windows). 
> To my real eye, it looks blue. Given that the orange, manilla, and brown of 
> the case look believable, it would seem that the VT100 had blue text. Is this 
> correct and is it the only color of text on the machine? Does anyone know the 
> hex RGB values?

That blue is definitely wrong.  Modern digital cameras, especially with the 
automatic "color correction" active, can make a mess of the colors.

A VT100, just like the VT05 and VT50/VT52, used a plain black & white TV tube.  
Those are very slightly blueish, probably, but not nearly to the extent 
suggested by that photo.  If you can find an old B&W TV set, that will show you 
exactly.

Later on, starting with the VT220, DEC offered several different monochrome 
tubes: green, amber, the original white maybe, and also at some point "paper 
white" which was a somewhat warmer white color.

The color specs of traditional B & W TV tubes should be available on the net, 
at least in terms of a "color temperature" which will give much of the answer.  

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Overwrite last track and set badblocks

2016-01-21 Thread Paul Koning

> On Jan 21, 2016, at 10:48 AM, Mark Pizzolato  wrote:
> 
> Hi Will,
> 
> On Thursday, January 21, 2016 at 7:01 AM, Will Senn wrote:
>> A quick couple of questions...
>> 
>> 1. Why does SimH prompt to overwrite the last track on some images every
>> time it runs, even if I let it, it will ask on the next run.
>> 
>> 2. What is a use case for setting bad blocks and is it a one shot deal or 
>> does it
>> need to stay in the .ini?
> 
> DEC shipped disk devices which were formatted at the factory.  Almost all
> disk media had a very small percentage of the media which didn't perfectly 
> store data.  Certain modern, disk devices (MSCP) had spare sectors built into 
> the internal format information on the drives and they presented a full disk 
> of clean blocks to the system.  Older disks shipped with factory with a defect
> table written in the last track of the device.  

This is sometimes referred to as the "DEC Std 144" format.  That's a DEC 
internal standard that describes the format of the table in question.  It 
applies to many but not all pre-MSCP drives.  Some drives (RK05, RP03) predate 
this standard; these would normally be shipped from the factory as flaw free 
packs.  Judging by some tables in the RSTS disk formatting code, RK06/07 and 
RL01/02 have DEC Std 144 tables; RP07, RM02/03/05 also (but not RP04/5/6).

I saw this message recently, and it repeated itself when I told it no.  When I 
said yes, the next time the message did not appear.  It might be that you get 
it repeatedly if your host OS overwrites the table.  DEC OSs should not do so. 

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] A tutorial introduction to programming PDP-11 Macro-11 Assembly in RT-11 v5.3

2016-01-21 Thread Paul Koning

> On Jan 21, 2016, at 10:58 AM, Ethan Dicks  wrote:
> 
> On Wed, Jan 20, 2016 at 8:37 PM, Johnny Billquist  wrote:
>> ODT actually stands for On-line Debugging Tool, not Online Debugging
>> Technique.
> 
> I recall Octal Debugging Technique.  Anyone else remember that definition?

Things get interesting...

The name ODT was derived from the TOPS-10 debugger DDT -- an obvious name in 
that era for something that gets rid of bugs, but officially it stood for 
"Dynamic Debugging Technique".

ODT was much simpler, not offering symbolic debugging for one thing.  So it got 
a different name, and since its I/O was pretty much just octal numbers, 
replacing "dynamic" by "octal" made sense.

Then again, the DOS V9 manual says it's "On-line debugging technique".  So do 
several RT11 manuals.  Hm.  Now I'm puzzled.  I clearly remember "octal" and 
don't remember ever seeing "on-line".  And sure enough, the header of the 
source code for RSTS "monitor ODT" (the kernel debugger) says "Octal debugging 
tool".

So it looks like DEC wasn't consistent.  On-line in some places, octal in 
others, and "technique" in the official documents I remember but "tool" at 
least internally (a more obvious word to use, certainly).

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] On {O,D}DDT

2016-01-21 Thread Paul Koning

> On Jan 21, 2016, at 2:27 PM, Timothe Litt  wrote:
> 
>> ...
> An early DDT manual (~ 1970, but I've lost the colophon page) explains the 
> DDT situation thusly:
> 
> INTRODUCTION
> DDT-10 (for Dynamic Debugging Technique) *  long page
> 
> In very small print, smaller than I can reproduce here:
> *Historical footnote: DDT was developed at MIT for the PDP-1 computer in 
> 1961.  At that time DDT stood for "DEC Debugging Tape".  Since then, the idea 
> of an on-line debugging program has propagated thoroughout the computer 
> industry.  DDT programs are now available for all DEC computers.  Since media 
> other than tape are now frequently used, the more descriptive name "Dynamic 
> Debugging Technique" has been adopted, retaining the DDT acronym.  Confusion 
> between DDT-10 and another well-known pesticide, 
> dichloro-diphenyl-trichloroethane (C14H9Cl5) should be minimal since each 
> attacks a different, and apparently mutually exclusie, class of bugs.
> 
> Oddly enough, this paragraph subsequently caught the attention of folks who 
> had power, but not much humor.  So it was removed.  But it stuck with me, and 
> is one of the few chemical formulae that I always have instantly to hand.

Neat.  "Mutually exclusive"?  I suppose in those days; earlier, not 
necessarily, consider the famous story about the first bug as reported by Cmdr. 
Grace Hopper.

I remember PASDDT.  And yes, various PDP11 ODT flavors existed; the original 
had rather primitive command parsing, which is why there were odd things like 
;B to remove all breakpoints.  As I recall, the original DOS ODT worked that 
way, and perhaps the early (V2 era) RT11 ODT as well.  Later versions with 
slightly more available memory were friendlier, which is when removing 
breakpoints became simply B without the odd semicolon.

> ...
> The other somewhat amusing thing is that DDT's adoption of the  (echoed 
> as '$') key required a lot of explanation in the manuals, as various models 
> of TeletypeTM caused keys located in the upper left corner of their keyboard 
> to emit different codes -- or the same codes, with different labels.  The 
> monitor had SET TTY commands to map these down to <033>.

Oh yes.  ALT MODE and ... what was the third possible label?  SEL?

While we're on the subject of oddball disclaimers: the RSTS monitor (kernel) 
debugger was originally a hidden feature, in V4A.  A couple of releases later 
it became slightly less hidden.  There was a manual for that debugger, which 
described some of the additional things it could do (like direct examination of 
data on RK05 disk).  The manual title page came with what looked like a 
standard DEC copyright / license disclaimer of that era, until you read it 
carefully:

The material included in this document, limited to but not including,
construction speeds and operating purposes is for instruction times
only. All such claim is material without notice, and is bound to
change the subject.

The standard text of those days (as seen in published RSTS V4 manuals) looks 
like this:

This document is for informational purposes and is subject to change
without notice.  DEC assumes no responsibility for the use or
reliability of its software on equipment which is not supplied by DEC.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] RX50 disks

2016-01-21 Thread Paul Koning

> On Jan 21, 2016, at 5:18 PM, Mark Pizzolato  wrote:
> 
> I’m guessing here, but consider this:  The SIMH disk image format is one 
> where the bytes of data are completely in “logical” sector order.  All disk 
> images connected to the RQ device (even RX50 floppies) are considered SIMH 
> disk images.  Depending on the underlying media, or the tools used to extract 
> them, the data you’ve got may or may not be in logical sector order.  It may 
> be in physical sector order which might include some form of interleave 
> factor.  Additionally, the underlying disk may or may not have 512 byte 
> sectors.  For instance the physical sectors may be 128 bytes each and they 
> may be interleaved around the disk with 4 of them forming a single logical 
> 512 byte sector.

All those are likely issues.  Another one is the track length.  PC 5.25 inch 
floppies normally have 9 sectors per track; RX50s have 10.  Linux can be told 
to set the floppy format to 10 sectors per track.  I haven't tried it recently, 
but in the past, this was done by adding a line to /etc/fdprm, like this one:

rx50 80010   1  800 0x23 0x01 0xDF 0x50

and then setting the drive to use that format (I don't remember how that is 
done).  There may be newer ways to achieve this, but in any case, the key point 
is that you need to tell the drive that there are 10 sectors per track.

A correctly recovered bootable disk is pretty easy to recognize.  You can 
disassemble the boot sector in detail, but a giveaway is the first word, which 
is octal 240 (the NOP instruction).  That's the PDP11 bootable device rule for 
all systems except the PRO, where the first word is required to be zero (and 
the boot code starts at offset 2).

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Overwrite last track and set badblocks

2016-01-22 Thread Paul Koning

> On Jan 22, 2016, at 10:29 AM, Will Senn  wrote:
> 
> ...
> OK. I figured some of this out...
> 
> In RT-11v5.3 if I have the following ini section for a disk:
> set rl1 writeenabled
> attach rl1 storage.dsk
> 
> And I say no initially to the prompt:
> Overwrite last track? [N]N
> 
> When I try to initialize the disk in RT-11, I get an error:
> .initialize dl1:
> DL1:/Initialize; Are you sure? Y
> ?DUP-F-Bad block in system area DL1:
> 
> But, if I answer Y:
> Overwrite last track? [N]Y
> 
> All is good in the world. I get no errors initializing and I no longer get 
> prompted at startup:
> .initialize dl1:
> DL1:/Initialize; Are you sure? Y
> 
> .dir vol:
> 
> 0 Files, 0 Blocks
> 10172 Free blocks

That all makes sense.  Since you were initialing an RL01 or RL02, the system 
expects a DEC Std 144 bad block table.  In the first try, it wasn't there.  
What may have happened is that initialize used what it found and mistook it for 
valid, and ended up believing it was told that block 0 is bad.  That would 
certainly make initialize unhappy.

> This being the case, it appears that set badblock does not appear to be 
> required. For the sake of discussion, if there is a case when it is required, 
> is it a one-shot deal where the command is run in simh and then left out of 
> the ini file after the bad block is created?

The bad block table lives on the disk, i.e., in the disk image file.  Unless 
it's overwritten, or you recreate the file, it will persist.  So yes, it is a 
one-shot deal.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] 8-bit pseudocolor on modern Windows PC?

2016-01-27 Thread Paul Koning

> On Jan 27, 2016, at 9:48 AM, Paul Hardy 2  wrote:
> 
> As a hobbyist, I successfully run VMS on a Simh emulated VAX (actually on a 
> Raspberry Pi, but that’s irrelevant). I’m doing some software archeology 
> trying to preserve some historic software which produced maps and charts on 
> VAXstations and AlphaStations. This used 8-bit pseudocolor graphics, 
> manipulating bit planes and colormaps. Variants of the software exist for VWS 
> and for DECwindows/Motif.
>  ...
> So,
> a) Does anyone know of an Xserver implementation that runs under Windows on a 
> modern PC and supports depth 8 pseudocolor visuals?
> b) Does anyone know of a SimH implementation of the VCB02/QDSS or SPX card?
> c) any other ideas?

I'm curious what level of 8 bit color support is needed.  There seem to be two 
rather different flavors.

1. Given a preset 256-entry color map, handle 8 bit indexed color.  This would 
be quite easy.  It's basically what happens when you display a GIF file.

2. Handle 8 bit color, *including* updating the look of the display dynamically 
if entries in the color map are changed.  That would be  harder.  You'd have to 
keep a backing store of the 8-bit data, and regenerate the truecolor image 
whenever the color map is changed.  Doable, but messy.

Is #2 actually important in practice?

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] 8-bit pseudocolor on modern Windows PC?

2016-01-27 Thread Paul Koning

> On Jan 27, 2016, at 3:01 PM, Tom Morris  wrote:
> 
> On Wed, Jan 27, 2016 at 2:39 PM, Paul Koning  wrote:
> 
> ...
> 2. Handle 8 bit color, *including* updating the look of the display 
> dynamically if entries in the color map are changed.  That would be  harder.  
> You'd have to keep a backing store of the 8-bit data, and regenerate the 
> truecolor image whenever the color map is changed.  Doable, but messy.
> 
> Is #2 actually important in practice?
> 
> Yes.  That's how the X Window System works.  Apps can use the color map for 
> animation and other effects.

Ok, makes sense.

> I can't imagine doing SIMH emulation of the QDSS/Drag-on chip would be a 
> productive use of time.  An implementation of PseudoColor visuals on 
> TrueColor displays in the XServer would be more widely useful.

I wonder: doing it in XServer is the same thing as what I described for #2.  
The only way to have it be simpler is with display hardware that has a color 
map, and it sounds like that's no longer done.  Maybe I'm confused...

A Dragon chip emulation would enable running VAX display software.  X of 
course, but also VAXWindows if you're so inclined.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] [OT] What's the difference between the 1990 Brunner VAX Architecture book and the Leonard from 1987?

2016-01-28 Thread Paul Koning

> On Jan 28, 2016, at 5:28 AM, li...@openmailbox.org wrote:
> 
> Hi,
> 
> Since there are some ex-DEC people here and many people knowledgeable in
> VAX can anybody tell me the [major] differences between these books if any?
> The Brunner book is very expensive, the 1987 copy is very affordable. What
> do I miss out on by buying the one by Timothy Leonard from 1987?
> 
> I realize the scans are up on bitsavers but I usually find real books
> easier to deal with.

I assume by "Brunner book" you mean the copy of DEC Std 032, the VAX 
Architecture Standard.  And "Leonard book" is the "VAX Architecture Reference 
Manual" edited by Tim Leonard, published by Digital Press.

Ok...  The DEC Std is a DEC internal document, labeled as such.  Some DEC 
standards were considered quite sensitive, and issued as numbered, 
individually-tracked documents.  I had one such for Alpha, which I duly 
returned to the document custodian when I left.

The DEC Std is the full, authoritative description of what a VAX is.  If you 
want to build a VAX (a new design, not a clone of an existing one), that 
document will tell you how to do so.  If you do everything it says, the result 
*should* be a correct VAX implementation, and VAX software should run on it.  

(This is the "conformance implies interoperability" principle of standard 
design.  This was the definition of proper standards design that was used at 
DEC.  For example, if you want to implement DDCMP, all you have to do is 
carefully code what the DDCMP spec say, and if you do so, it WILL work.   
Unfortunately, most of the rest of the world does not believe in this level of 
quality.  I was involved at one point in IETF standards work, and I mentioned 
this principle in a meeting.  The document editor actually objected to what I 
said and stated that it was unreasonable to expect protocol standards to do 
this.  And sure enough, the document he produced is NOT good enough that you 
can just do what it says and expect the result to be a working implementation 
-- you have to hack on it and test against other implementations to come up 
with the right combination of hacks and tweaks and bug workarounds for things 
to work.  Sigh.)

On the other hand, the Digital Press book is a public document.  Its purpose is 
to describe to VAX *users* what a VAX is.  If you want to port an OS, or a 
compiler, to VAX, you'll want this book.  If you want to write applications for 
VAX, it will certainly work as well (though it might be more than you need).

In other words, the book is a subset of the DEC Std.  If you want the ultimate 
reference, grab the standard.  If you want to debug an emulation (say, if there 
is debate about whether SIMH gets the VAX correct), the DEC Std will be the 
authority to settle the question. For other software work -- say, the NetBSD 
port for VAX, or the VAX backend of GCC -- the published book is likely to be 
sufficient.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] [OT] What's the difference between the 1990 Brunner VAX Architecture book and the Leonard from 1987?

2016-01-28 Thread Paul Koning

> On Jan 28, 2016, at 1:05 PM, Tom Morris  wrote:
> 
> You'll get better answers if you're more explicit with your references. Paul 
> took at guess at what you meant. I'm going to make a different guess.
> 
> I'm guessing that the two books are:
> 
> - "Leonard book" - VAX Architecture Manual, first edition, edited by Timothy 
> Leonard and published by Digital Press in 1987
> - "Brunner book" - VAX Architecture Manual, second edition, edited by Richard 
> Brunner & Dileep Bhandarkar and published by Digital Press in 1990
> 
> The 1994 Digital Press catalog says the second edition "includes important 
> new material covering the VAX shared-memory model and new vector processing 
> extensions."  It presumably also includes a variety of other revisions and 
> corrections.  The book was written for public consumption, based on, but 
> different from, DEC Std 032.

Ah.  Ok.  I looked at the four documents at Bitsavers and found one with 
Brunner's name on it, namely a copy of DEC Std 032.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] PDP11 oddity with RSTS 9.6

2016-02-03 Thread Paul Koning

> On Feb 3, 2016, at 2:46 PM, Gene Irwin  wrote:
> 
> Hello guys,
> 
> I have tried simh 3.9 and 4.0 and have this odd issue.
> 
> I got a copy of a built rsts on rpo6, and the copies of the .tap files used 
> to gen this image.  it is v9.6.
> 
> If I boot the prebuilt hard drive image the system comes up just fine.
> 
> If I boot the tape and go through the sysgen process the hard drive image 
> that is built has no lp0: device in the monitor, and the spooler fails during 
> boot and keeps the rest of the start.com script from running, making the 
> system come up in a single user mode with job max at 2.
> 
> I've tried diferent processors (11/70 up to 11/94), LPT is enabled in simh, 
> and I'm not sure what to try next.  
> 
> If I boot the prebuilt image and do show devices _LP0: is present.
> If I boot the sysgen'd image and do show devices, there is no _LP0:

Did you ask for line printers during sysgen?  Can you show the generated 
config.mac (produced by running the sysgen program)?

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] PDP11 oddity with RSTS 9.6

2016-02-03 Thread Paul Koning

> On Feb 3, 2016, at 3:46 PM, Paul Koning  wrote:
> 
> 
>> On Feb 3, 2016, at 2:46 PM, Gene Irwin  wrote:
>> 
>> Hello guys,
>> 
>> I have tried simh 3.9 and 4.0 and have this odd issue.
>> 
>> I got a copy of a built rsts on rpo6, and the copies of the .tap files used 
>> to gen this image.  it is v9.6.
>> 
>> If I boot the prebuilt hard drive image the system comes up just fine.
>> 
>> If I boot the tape and go through the sysgen process the hard drive image 
>> that is built has no lp0: device in the monitor, and the spooler fails 
>> during boot and keeps the rest of the start.com script from running, making 
>> the system come up in a single user mode with job max at 2.
>> 
>> I've tried diferent processors (11/70 up to 11/94), LPT is enabled in simh, 
>> and I'm not sure what to try next.  
>> 
>> If I boot the prebuilt image and do show devices _LP0: is present.
>> If I boot the sysgen'd image and do show devices, there is no _LP0:
> 
> Did you ask for line printers during sysgen?  Can you show the generated 
> config.mac (produced by running the sysgen program)?

Something else to try.

After boot, at the "start timesharing" prompt, ask for "hardware list".  It 
should show the LP; if not, it meas that the boot autoconfiguration code did 
not see an LP controller.

If it's shown there, start with the "START" command (not just Return for the 
default fast start).  Look for device disabled messages before the prompt from 
the startup script.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Macro-11 Macro library question (RT11 running in SimH PDP11)

2016-02-05 Thread Paul Koning

> On Feb 5, 2016, at 10:48 AM, Will Senn  wrote:
> 
> All,
> 
> A couple of questions:
> 
> ...
> lib/mac/c tin tin
> macro et2/list/cross+tin.mlb/lib
> ?MACRO-E-Errors detected:  2
> DK:ET2,DK:ET2/C=DK:ET2,DK:TIN.SML

Try putting the macro library earlier in the command line.  I believe MACRO 
processes command arguments as it encounters them, so here you're asking it to 
assemble ET2 before you've given it the macro library it needs to understand 
the .MCALL.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] PDP11 oddity with RSTS 9.6

2016-02-05 Thread Paul Koning

> On Feb 3, 2016, at 6:19 PM, Gene Irwin  wrote:
> 
> the hardware list shows the lp0 device.
> 
> Using start to start the system lists multiple controllers disabled, but they 
> are all disk or tape.  lp isn't one of them.

It looks like you missed the INSTALL step.

The RSTS startup machinery ("INIT") is configured to start a specific SIL.  
Initially that is the one SIL included on the installation media.  Once a SIL 
is selected, that sticks until you change it.

If you build another monitor (another SIL), nothing changes until you use the 
"INSTALL" command in the INIT dialog to make the newly built SIL the one you're 
going to run.  Having done that, you can also tweak the settings, for example 
memory allocation, for the current SIL using the DEFAULT command.

The currently selected SIL is shown in the system boot message that displays 
immediately after you issue the SIMH "boot" command.

With the right SIL ("RSTS") installed, I do see the LP device, and startup 
completes normally.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Macro-11 Macro library question (RT11 running in SimH PDP11)

2016-02-05 Thread Paul Koning

> On Feb 5, 2016, at 1:18 PM, Johnny Billquist  wrote:
> 
> ...
> Also, there might be some issues (possibly) since you use + to provide 
> several files. I *think* that the '+' operator in general would imply that 
> the files are concatenated together, and a comma might be a better separator 
> to use.

No, in the DCL command, + is correct.  The meaning of + is that you're listing 
several files that contribute to a single output, while comma means you're 
doing several separate operations.

I believe the following are both legal:

macro a,b,c
macro a+b+c

The first does three assemblies: a, then b, then c, producing three separate 
outputs; the second does a single assembly using files a, b, and c as the 
inputs.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] OSs with accessible documentation

2016-02-06 Thread Paul Koning

> On Feb 5, 2016, at 6:10 PM, Timothe Litt  wrote:
> 
> Some of the PDFs on bitsavers are searchable.  It would be a good
> project to OCR the rest into searchable pdfs - as that also means that
> the text can be extracted.   OCR is getting good enough (finally) that
> it's feasible.  I'm sure that they'd be accepted back into bitsavers  -
> searchable is good for everyone.

Some disapprove of OCR for reasons I don't really understand.

A problem with OCR is that it's hard to find a good one.  I dabbled with an OCR 
plugin that Adobe once offered (free, and worth about that).  I also once tried 
an open source OCR, which was vastly inferior still.

But commercial OCR programs exist that do a decent job, especially if the 
scanned material is clean as is the case for much of what is on Bitsavers.  I 
use Abbyy FineReader which I rather like, but I expect there are other good 
ones out there too.

One key point is that you typically need to spend some time "training" the 
program on the particular type of material -- typeface etc. -- that you're 
working with.  The default settings are rarely adequate.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] OSs with accessible documentation

2016-02-06 Thread Paul Koning

> On Feb 6, 2016, at 2:28 PM, Tom Morris  wrote:
> 
> ...
> I think Tesseract is pretty close to the quality of ABBYY.  Google has 
> trained it on a very large corpus and it's used for Google Books, Google 
> Drive OCR, etc, so it gets a fair amount of attention.  Of course, a lot of 
> the training effort has gone into training it for over 100 languages, which 
> isn't really relevant to old computer documentation, but even for plain 
> English, it's received lots of training attention.

Is Tesseract open source?  It sounds vaguely like the one I tried, but I'm not 
sure; I remember something that felt more like a toolkit than like an 
application.

Google's OCR is pretty lousy in many cases.  Perhaps that's because they just 
feed it stuff without ever looking at the result.  There are plenty of Google 
books that have errors in the majority of the words.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Sounds

2016-02-10 Thread Paul Koning

> On Feb 10, 2016, at 12:48 PM, Henk Gooijen  wrote:
> 
> ...
> After looking just a few minutes at the screen, I looked up again ...
> the RK07 had moved again some 4 inches!
> 
> I guess that those big drives like the RK07 , RM80 and RM03 really
> should be placed on the rubber feet extended to the floor.

Yes -- those feet exist for a reason.  And if your rack has extension feet 
sticking out the front, those are important too anytime you pull out a cabinet 
(either for service, or if it's an RL01/02 just for access to the pack).

The casters are ONLY for moving the cabinet around during installation or for 
reconfiguration -- not for support while in use.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] simh on RaspBerry Pi

2016-02-15 Thread Paul Koning

> On Feb 15, 2016, at 9:01 AM, Wilm Boerhout  wrote:
> 
> Will Senn schreef op 15-2-2016 om 14:26
> 
> [snip]
> 
>> Are you documenting the setup process for your endeavors, or just blogging 
>> about the result? I think it would be interesting to see how you clustered 
>> those Pi Vaxen as much as to know it was possible. I've got a few Pi around 
>> looking for something to cluster around...
> There are three parts to a successful setup:
> 
> 1. Since each Pi has only one Ethernet interface, make sure you use a
>   wired connection (wireless isn't real Ethernet) 

Well, Wireless is 802.11 which indeed isn't 802.3 / Ethernet.  But that's not 
really relevant.  The question is whether it uses Ethernet addressing and 
offers an Ethernet-compatible MAC layer API, and 802.11 certainly does.  You 
can run SimH Ethernet just fine over a wireless LAN.  I've run PDP11 SimH that 
way with no problems.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] simh on RaspBerry Pi

2016-02-15 Thread Paul Koning

> On Feb 15, 2016, at 10:19 AM, Wilm Boerhout  wrote:
> 
> Paul Koning schreef op 15-2-2016 om 16:15:
> 
> [snip]
>>> There are three parts to a successful setup:
>>> 
>>> 1. Since each Pi has only one Ethernet interface, make sure you use a
>>>   wired connection (wireless isn't real Ethernet) 
>>> 
>> Well, Wireless is 802.11 which indeed isn't 802.3 / Ethernet.  But that's 
>> not really relevant.  The question is whether it uses Ethernet addressing 
>> and offers an Ethernet-compatible MAC layer API, and 802.11 certainly does.  
>> You can run SimH Ethernet just fine over a wireless LAN.  I've run PDP11 
>> SimH that way with no problems.
>> 
>>  paul
>> 
>> 
>> 
> Maybe it is my poor choice of wireless networking adapter, or a Raspbian 
> thing, but I never managed to get tun/tap networking with a bridge to work on 
> the Raspbian wlan0 device (in this case, an Edimax wireless adapter), whereas 
> on the eth0 device (the built in Raspberry adapter) it works instantly.

I'll have to give it a try.  Well, on a Beaglebone Black, that is (I don't like 
closed hardware, or hardware that tries to be open but that uses a closed chip 
at the center).

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] EXT :Re: simh on RaspBerry Pi

2016-02-15 Thread Paul Koning

> On Feb 15, 2016, at 1:48 PM, Hittner, David T (IS)  
> wrote:
> 
> LAT runs fine over the (wired) Ethernet port.
> LAT doesn’t run over wireless Ethernet without major help from the wireless 
> hardware or unless it’s tunneled over IP.

I'm still baffled.  Why doesn't it?  802.11 has the same MAC layer service as 
Ethernet -- broadcast, multicast, unicast, 48 bit addresses, etc.  What 
specifically does LAT do that doesn't work on 802.11?  Is it a standards issue, 
or a case of defective implementations?

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] EXT :Re: simh on RaspBerry Pi

2016-02-15 Thread Paul Koning

> On Feb 15, 2016, at 2:02 PM, Johnny Billquist  wrote:
> 
> On 2016-02-15 19:53, Paul Koning wrote:
>> 
>>> On Feb 15, 2016, at 1:48 PM, Hittner, David T (IS)  
>>> wrote:
>>> 
>>> LAT runs fine over the (wired) Ethernet port.
>>> LAT doesn’t run over wireless Ethernet without major help from the wireless 
>>> hardware or unless it’s tunneled over IP.
>> 
>> I'm still baffled.  Why doesn't it?  802.11 has the same MAC layer service 
>> as Ethernet -- broadcast, multicast, unicast, 48 bit addresses, etc.  What 
>> specifically does LAT do that doesn't work on 802.11?  Is it a standards 
>> issue, or a case of defective implementations?
> 
> Trying to recall what I might have read/understood from somewhere, the 
> problem is that WiFi might look like ethernet, but there are some important 
> differences. One of these is that the switch/router actually *knows* the MAC 
> addresses that are connected, as in the card/controller identities. Which, 
> unlike a normal ethernet, means that if you add a device with a different mac 
> address to the interface, the router at the other end will not learn this, 
> and will not forward packets to you the way you would expect it to work on an 
> ethernet.

So you can't build a LAN bridge with a Wifi network-side interface?  Really?

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Assembler programming under Unix - was VAX/VMS

2016-02-15 Thread Paul Koning

> On Feb 15, 2016, at 4:30 PM, Kevin Handy  wrote:
> 
> Any more, with the optimizing compilers we have today, it doesn't make much 
> sense to use machine language for most program development.
> 1. The compilers often produce better code that the average programmer would 
> produce, and often better than a good one would produce. The optimizer 
> doesn't care about making readable code, so it can do aggressive things to 
> the code that a human wouldn't wnt to. LLVM is even working with 
> optimizations across compilation units.
> 2. Portability issues. If you write in machine language on a VAX/VMS, that is 
> all it will run on. Porting it to VAX/Unix
>  might be possible, put with the differing system interfaces, not easy.
> 3. Ease of development. Developing in a higher level language is usually 
> faster than in a machine language environment. It is also often easier for 
> others to quickly comprehend. One line in high level code, "a=b*c+d*e", 
> verses numerous lines of assembly code.
> 4. What do you do if your platform suddenly gets new opcodes. This happened 
> with the Alpha, Intel x86, and many others. Update your code, or leave it the 
> same so it can still run on older hardware?
> 
> There are some places where hand-coded machine code is useful, but its use 
> isn't as necessary as it used to be. It can be interesting to know some of 
> the details.

All those are good points.  You could even state #1 more strongly as "average 
programmers should not do assembly programming at all".  And a lot of these 
things have been true for a long time.

That said, assembly programming is interesting.  For a hobbyist it makes 
perfectly good sense to do it even if by all the reasons you stated it would be 
the wrong answer for a "real program".  For one thing, you will learn things 
about the machine that were only theoretical facts so long as all you did was 
read documentation.

Or to put it differently: if you're going to do assembly programming (for fun 
or for serious work) your first job is to understand the machine internals, in 
detail.  For serious work, you're not qualified until you've completed that 
study.  For example, if you're writing MIPS or Alpha code (at least if it's for 
performance) and you cannot explain, in chapter and verse, how the CPU 
pipeline, functional units, and result bypasses (if any) work, you're not ready 
for the job.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] VAX/VMS

2016-02-16 Thread Paul Koning

> On Feb 16, 2016, at 6:49 AM, Johnny Billquist  wrote:
> 
> On 2016-02-16 07:57, Wilm Boerhout wrote:
>> Zane Healy schreef op 15-2-2016 om 18:20:
>> 
>> [snip]
>> 
>>> There are plenty of good VAX and VMS manuals out there, including the
>>> documentation set.  Check eBay and abebooks.com.
>>> 
>>> The last version of VMS that will run on a VAX is v7.3.
>>> 
>>> Zane
>> More precisely, V7.3 will run on *any* VAX, including the primal
>> VAX-11/780. This level of backwards compatibility is unique.
> 
> No, it is not. Talk to IBM about S/360... :-)

Nor is it unique at DEC.  Consider RT-11.  And possibly RSX-11/M (I don't know 
that one well enough -- does it run on an 11/20?)

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] VAX/VMS

2016-02-16 Thread Paul Koning

> On Feb 16, 2016, at 9:56 AM, Timothe Litt  wrote:
> 
> ...
> Nonetheless, Brooks (@IBM) definitely gets credit for the first
> commercial line of architecturally (forward) compatible machines.  Prior
> to that inspiration, every new machine was unique and most software
> started over (including compilers).

I'm not sure that "first" is accurate.  If in the sense of a series of machines 
for which that feature is specifically marketed, perhaps.  But the PDP4/7/9/15 
is another example that started somewhat earlier.  (PDP1 doesn't quite match, 
as I understand it.)  CDC 6000 series definitely fits your definition, and 
those came out at the same time as the 360.  The Burroughs B5000 series is 
somewhat older (1961, says Wikipedia).

Not as well known and perhaps not quite close enough to be called "forward 
compatible" are the Electrologica EL-X1 (1958) and EL-X8 (1964), with more 
planned but not shipped before the company was bought & closed down.

Of all those, the IBM 360 descendants are perhaps the most commercially 
successful, and also probably the longest lived.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Simh Digest, Vol 145, Issue 52

2016-02-16 Thread Paul Koning

> On Feb 16, 2016, at 11:49 AM, Johnny Billquist  wrote:
> 
> On 2016-02-16 17:43, li...@openmailbox.org wrote:
>> On Tue, 16 Feb 2016 11:40:09 -0500
>> William Pechter  wrote:
>> 
>>> Actually, one of DEC's biggest mistakes was not OEMing the uVax chips...
>>> They would've killed the 68k had they had the uVaxII chipset
>>> available for early workstations.
>> 
>> I'm not so sure about that. The 68k was used in an awful lot of devices
>> from handhelds (Palm) to TI calculators and a whole lot more than
>> workstations. Could handheld devices in that day run microVax chips?
> 
> For a lot of embedded, low power stuff, it would have made more sense to use 
> PDP-11s. But DEC had those chips as well, and was somewhat unwilling in that 
> market too. Imagine if they had tries to really push for getting PDP-11s out 
> there in all kind of devices, and made one or two more implementations to 
> shrink and reduce power... That could have been nice.

One complication was that, until around the 3rd generation Ethernet chip, DEC's 
inhouse chip business made chips that cost much, much more than anyone else's.  
There's a reason the networking products stuck to LANCE chips for quite some 
time.  I think it was the TGEC ("third generation Ethernet chip") that finally 
became cost-competitive (as well as being functionally superior to every 
alternative).

DEC got very seriously into low power with the StrongARM (SA110) chip, but that 
was much later.  It was quite amazing, though; I don't remember how much lower 
power per MHz than every other processor out there, but it was quite 
significant and set the stage for the lower power processor technology that 
enabled smartphones.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] VAX/VMS

2016-02-16 Thread Paul Koning

> On Feb 16, 2016, at 2:58 PM, Rhialto  wrote:
> 
> On Tue 16 Feb 2016 at 08:58:11 -0500, Clem Cole wrote:
>> Dave be careful --   S/360 Model 67 has VM in the late 1960's - TSS and
>> it's brother MTS, both rely on it.   The 67 is a Model 65 with a  Data
>> Address Translation unit (DAT box) - is supplied by a 8 x 32 bit TLB which
>> is in a cabinet that t'ed off the main CPU and is about the same size en
>> entire Vax 780 which would follow 10 years later.
> 
> Note that I have rescued at some point in the past an IBM patent (it was
> the UK version) of a computer with microcode, and maybe Virtual Memory
> too. Although they didn't call it that I think. After reading, it
> described something remarkably like the S/360. It lists the full
> microcode and has extensive hardware schematics.
> 
> The patent number is 1,108,800. Inventors: Gene Myron Amdahl et al.
> USA patent application number 357372, 6 April 1964. The issued patent
> number is US003400371.

Amazing.  974 pages, 131 claims.  And yes, a long listing of microcode.  And 
flow charts.  And schematics.  It clearly is a 360.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] What is CDC OS?

2016-02-16 Thread Paul Koning

> On Feb 16, 2016, at 4:04 PM, Nelson H. F. Beebe  wrote:
> 
> Will Senn  asks on the list on Tue, 16 Feb 2016
> 12:47:12 -0600 about CDC operating systems.
> 
> I worked quite happily on a CDC 6400 from 1973 to 1977.  Initially, we
> had the SCOPE operating system, and later, KRONOS.  
> ...
> The interactive features of the CDC 6400 had a huge beneficial impact
> on my software productivity, compared to my previous batch
> environment, and I regret that I have yet to find a CDC [67]x00
> simulator with either SCOPE or Kronos.  I have one that boots up to
> ROM level, but cannot get further with it.

DtCyber is a full 6000 series emulator that runs pretty much all the 6000 
series 60 bit software (including nearly all diagnostics).  It doesn't emulate 
the 7600; I haven't seen anything that does.  Nor does it emulate the 64 bit 
mode of the later machines.  There is a mailing list ("controlfreaks") for 
working on/with that.  Due to licensing limitation it isn't world-readable but 
if you're interested, ask to join.

There's a PLATO system on-line (see www.cyber1.org) running in emulation on 
DtCyber, using NOS 2.8.7 as the underlying OS.  (Not that PLATO makes much use 
of the OS services... it's barely more than a program loader as far as it's 
concerned.)

> The CDC machines had a small instruction set (64 different opcodes).
> All integer arithmetic was done with floating-point instructions,

Not quite.  Mul and div, yes.  But there are separate full 60 bit integer add 
and subtract ("long add") instructions.

> ...
> The address space was 2**18 = 262_144 words, and each process had a
> contiguous block.  

17 bits in the 6000 series (18 bits in the 170 series).

> The CDC [67]x00 family CPUs have no interrupts: instead, there are
> several peripheral processors (PP's) that interface to external
> devices such as disks and serial terminal lines.  The PP's are 12-bit
> computers, each with 4096 words of memory. They communicate with the
> main CPU by monitoring a couple of privileged memory locations that
> hold data for a device operation.  At our site, the PPs were never
> accessible to end users, so no one outside the computer center ever
> knew their instruction set.

The PPs have a way to interrupt the CPU, or more precisely, to do a context 
switch.  It feels a bit like the VAX instructions to save and load process 
context, except that the whole job is done in one instruction, not two.  And 
that instruction is blindingly fast: the whole operation runs at memory speed, 
100 ns per word (thanks to interleaving) so a process switch would take about 3 
to 4 microseconds.

> Niklaus Wirth and Urs Ammann have interesting, and sometimes negative,
> comments about the CDC 6600 on which they developed the first Pascal
> implementation.  Like Fortran and the IBM 709, and C and the DEC
> PDP-11, the Pascal language also contains several influences of the
> CDC 6600 architecture, although Wirth tried as much as possible to
> hide the hardware from the programmer.

I don't think Dijkstra liked it much either.  One of them objected to the weird 
floating point rounding, which (according to what they said, I haven't checked) 
rounds at 1/3rd rather than the proper 1/2 LSB.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Recent build crashes on OSX

2016-02-17 Thread Paul Koning

> On Feb 17, 2016, at 2:53 PM, Timothe Litt  wrote:
> 
> On 17-Feb-16 14:48, Michael Huff wrote:
>> I grabbed simh_master.zip from github yesterday and compiled it on OSX
>> and in a virtualbox instance of Linux Mint 17. OSX is the native OS,
>> Linux is in a VM.
>> 
>> I have a 43BSD machine accessible to both on a shared drive. It will
>> boot normally when I run vax780 inside of the Linux VM, but  when I
>> run the vax780 binary I compiled in OSX it crashes.
>> 
> If I had to guess, it would be that the shared drive is not presenting
> the same data to both environments.
> 
> Perhaps it's treating the binary file as text and adding s -- or
> some such.
> 
> I'd checksum the file from both sides before assuming it's a SimH issue.

That is a good test, certainly.  But OSX is Unix, so it shouldn't suffer from 
the sort of Windows-style misbehavior you mentioned.

I wonder if it might be a compiler bug.  It would be instructive to download 
gcc and use that to build the OSX based SIMH, to see if it behaves differently.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] RT-11 Storage Strategy

2016-02-17 Thread Paul Koning

> On Feb 17, 2016, at 1:55 PM, Larry Baker  wrote:
> 
> If you really want the RT-11 experience, try running it off RX01 floppies.  
> My first experience with DEC PDP-11's was a PDP-11/34 (not 34A; no FPU) 
> running RT-11 off floppies.  Ka-klunk, ka-klunk!

Yes, but that's still quite a lot faster than running it on DECtape.

Still, the amazing part is that RT on DECtape actually works.  It's the only 
DEC OS I know of for which that is true.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Recent build crashes on OSX

2016-02-17 Thread Paul Koning

> On Feb 17, 2016, at 3:01 PM, Howard Bussey  wrote:
> 
> Googling “Process PTE …” shows this occurred before:
> 
> http://mailman.trailing-edge.com/pipermail/simh/2010-May/010760.html
> 
> The suggestion was to try turning off optimization when compiling simh…

In that case, gcc is the compiler.  In the case Michael mentioned, it's LLVM.  
So the conclusion is that it's a SimH bug, non-compliant code that gets caught 
by modern optimizing compilers.

Turning on GCC warnings may help; a lot of issues of this kind are reported as 
warnings if you build with -Wall.  I don't see anything interesting when I try 
that on OSX, but that's LLVM.  When I try it on Linux, I get a bunch of 
possible uninitialized variables -- those are sometimes false warnings but 
worth looking at.  More interesting is a bunch of "does break strict-aliasing 
rules".  Those indicate incorrect (not ANSI compliant) code that you used to be 
able to get away with, but can't any longer when optimization is enabled.  The 
correct way to handle those errors is to fix the code, not to disable the 
warning or the optimization (as is done by some other software teams).

More info can be found here: 
https://homes.cs.washington.edu/~akcheung/papers/apsys12.pdf -- a very good 
article that all C programmers should read.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] examine octal and ascii in SimH

2016-02-20 Thread Paul Koning

> On Feb 20, 2016, at 11:20 AM, Will Senn  wrote:
> 
> In SimH:
> 
> It is possible to display bytes in ASCII form:
> sim> e -c 1032-1034
> 1032:AB
> 1034:C<000>
> 
> It is also possible to display words in octal:
> sim> e 1032-1034
> 1032:041101
> 1034:000103
> 
> Is it possible to display bytes in octal, or bytes in both ASCII and Octal at 
> the same time?
> 1032 101 A
> 1033 102 B
> 1034 103 C
> 1035 000 NUL
> 
> or even just the octal bytes themselves?:
> 1032 101
> 1033 102
> 1034 103
> 1035 000

For all these, the answer is: that's up to the individual CPU emulation.  Some 
do, some do not.  The switches used to request this are fairly consistent.  You 
might try "e -o 1234" for example, and that may work.  Or not...  

If you want it but it isn't there, you can of course add it.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Reading directly from console in RT-11

2016-02-20 Thread Paul Koning

> On Feb 19, 2016, at 4:58 PM, Will Senn  wrote:
> 
> Given the following test program that I wrote (GETC.MAC):
> 
>   .title getc
> 
>.mcall.exit
> 
> TKS = 177560
> TKB = 177562
> ;TPS = 177564
> ;TPB = 177566
> 
> begin:
>incTKS;set the ASR read enable bit
> getc:
>tstbTKS;is a character available?
>bplgetc;loop until there is
> 
>movbTKB,R0;put the character into register 0
> 
>.exit
> 
>.end begin
> 
> I would expect the console to wait until I typed a single character and then 
> for the program to exit. What is happening is that the program appears to 
> accept any number of characters and only ends when I type CTRL-C twice.
> 
> Here are some questions that arise:
> 
> 1. Is it reasonable to expect to be able to read directly from the ASR 
> Keyboard buffer while running RT-11 in SimH or does this somehow compete with 
> the running OS? (I can print characters using the ASR Punch Buffer just fine)

No, that is not reasonable.  Not without extra work.  You're messing with a 
device that has already been set up by the terminal driver.

When running in kernel mode, as you are in RT11, you can definitely get around 
this, but it requires more work. Specifically, you'd have to disable terminal 
interrupts so the appearance of a character doesn't wake up the driver.  For 
best results, you would also have to restore the terminal CSRs on exit so the 
terminal driver is given control again.

Alternatively, you could block out interrupts by raising the processor 
priority, then lowering it back to 0 before exit.  That works because 
interrupts are level sensitive in PDP11s (as they are in all sane interrupt 
architectures), so the fetching of the received character will cancel the 
interrupt request, which means that lowering the priority just before the .exit 
will have the right result (no interrup to confuse the driver).

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Reading directly from console in RT-11

2016-02-20 Thread Paul Koning

> On Feb 20, 2016, at 12:25 PM, Will Senn  wrote:
> 
> Great answer and helpful. I'll give both approaches a shot. If I understand 
> my environment correctly, RT-11 is single user, single job (well, most of the 
> time anyway). So, it oughta be safe enough to try this without messing things 
> up beyond needing to restart if I have logic errors? That is, the file system 
> isn't involved or caching or anything that would cause inconsistency as a 
> result of an infinite loop or crash? Not that I would ever code such things 
> :)!

RT comes in several flavors, of which I know the SJ and FB 
(foreground/background) flavors, V2 specifically.  Both are unprotected 
operating systems, so you can play with I/O devices at will.

Also, in those there definitely is no caching in the file system.  For that 
matter, the file structure is simple enough that there really isn't anything to 
go "inconsistent".  A crash in mid-operation might cause a file not to be there 
if it was being written, but that's about it.  The only exception I can think 
of is the file system defrag operation, but then again that one may be written 
in a fault tolerant manner, I don't know.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] RT-11 Storage Strategy

2016-02-21 Thread Paul Koning

> On Feb 21, 2016, at 7:32 AM, Johnny Billquist  wrote:
> 
> On 2016-02-17 21:02, Paul Koning wrote:
>> 
>>> On Feb 17, 2016, at 1:55 PM, Larry Baker  wrote:
>>> 
>>> If you really want the RT-11 experience, try running it off RX01 floppies.  
>>> My first experience with DEC PDP-11's was a PDP-11/34 (not 34A; no FPU) 
>>> running RT-11 off floppies.  Ka-klunk, ka-klunk!
>> 
>> Yes, but that's still quite a lot faster than running it on DECtape.
>> 
>> Still, the amazing part is that RT on DECtape actually works.  It's the only 
>> DEC OS I know of for which that is true.
> 
> Like others said, lots of PDP-8 systems definitely ran only from DECtape. So 
> that is not unique by any means.
> 
> But more generally - DECtape is just a block addressable mass storage system, 
> just like any other. In theory, any OS that can run from a disk can just as 
> well run from DECtape. Speed will be slow, but that's the only thing about it.

True in principle.  But a number of OS used a different file structure for 
DECtape than for disks -- because of the performance issues.  DOS does, for 
example, and RSTS copied the DOS DECtape directory structure (but not the disk 
one).  RT11, on the other hand, uses the same format for both, and the RT11 
format works well.  That's why RT runs from DECtape without any extra work, 
while DOS and RSTS don't.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] RT-11 Storage Strategy

2016-02-22 Thread Paul Koning

> On Feb 22, 2016, at 3:50 AM, Johnny Billquist  wrote:
> 
> On 2016-02-21 16:51, Paul Koning wrote:
>> ...
>> True in principle.  But a number of OS used a different file structure for 
>> DECtape than for disks -- because of the performance issues.  DOS does, for 
>> example, and RSTS copied the DOS DECtape directory structure (but not the 
>> disk one).  RT11, on the other hand, uses the same format for both, and the 
>> RT11 format works well.  That's why RT runs from DECtape without any extra 
>> work, while DOS and RSTS don't.
> 
> Interesting. I didn't know that RSTS/E used a different file system for 
> DECtapes. RSX do not. It's the same file system used on both large disks, 
> floppies and DECtapes.

The RSTS file systems uses directories that are linked lists, which means 
things get really horribly slow if you can't do decent random access.  That 
includes the file windows (pointers to where the file blocks are).  DOS ditto, 
though the details differ.  So for DECtape, DOS took the aproach of having each 
data block contain the link to the next, rather than having those links in the 
directory as it does for disks.  This is why DECtape file blocks in the DOS 
format are only 510 bytes long.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Questions about PDP-7

2016-02-25 Thread Paul Koning

> On Feb 25, 2016, at 4:50 PM, Bob Supnik  wrote:
> 
> I think the answer is two characters per 18b word, right aligned in a 9b 
> "byte".
> 
> This is based on the assembly code at the end of the first PDF:
> 
> a.out:
>; ;  
> Clearly it's just two characters per word (; denotes end of statement to this 
> assembler)

Lower case text, and semicolon as a statement separator, are characteristic of 
Unix assemblers.  These listings suggest that it goes all the way back.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] pdp11 and unix

2016-02-27 Thread Paul Koning

> On Feb 26, 2016, at 7:13 PM, Clem Cole  wrote:
> 
> 
> On Fri, Feb 26, 2016 at 6:28 PM, Nigel Williams 
>  wrote:
> Perhaps not unusual for the 1960s but laborious none-the-less.
> 
> ​Depends who you are.   For grins look for the original Cray-1 "assembler" 
> box.   You'll discover there are no mnemonics like "add", "branch" - just 
> octal codes.   Seymor didn't need them. ​

Obviously, to get an assembler you'd first have to bootstrap *that*, unless you 
could write a cross-assembler.  And early assemblers weren't necessarily all 
that fancy.  

I've been reading some 1950s era computer descriptions, for machines without 
assemblers.  Opcodes are simply written as op/addr so you'd remember, say, that 
0 is add and 6 is store, and so forth.  A machine introduced in Holland in 1958 
-- the EL-X1 -- had a very bare-bones assembler, or slightly smart loader, 
depending on how you'd want to think about it.  Just a few hundred 
instructions; it had opcodes like "0A" (add to A) or "6S" (store S register).  
And it had symbolic addresses, but you couldn't label individual locations, 
only "paragraphs" because symbols were only pairs of one of 13 letters, i.e., a 
max of 169 symbols per program.  Still, with that primitive tool some large 
software was written, such as the world's first ALGOL compiler.

It isn't really all that much harder than a modern assembler once you get used 
to the different look.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] pdp11 and unix

2016-02-27 Thread Paul Koning

> On Feb 27, 2016, at 2:06 PM, Bill Cunningham  wrote:
> 
> Or program in binary. Like originally.

I'm not so sure about that.  I have documents from as early as 1948 showing 
programming in machine language, though each of these use decimal numbers for 
the opcodes and addresses.  While of course many machines were binary 
internally, I've never seen anyone actually code programs in binary.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] pdp11 and unix

2016-02-27 Thread Paul Koning

> On Feb 27, 2016, at 2:36 PM, Bill Cunningham  wrote:
> 
> Well that's certainly before ICs I think that was in the 1950s and it was 
> some early calculators that killed slide rules. What kind of "processor" were 
> they using? I'm not so sure there was real HLL before Adm. Hopper. And no 
> binary by Babbge. Do you have any links or anything from the '40s?

HLL?  I was talking about assembler...  Anyway, I don't believe COBOL was the 
first HLL, though it certainly was fairly early.

You can find writeups about Harvard Mark 4 in Bitsavers, and presumably other 
old stuff as well.  My own comment was referring to documents about early Dutch 
computer work I've been looking at.  For example this one: 
http://oai.cwi.nl/oai/asset/9603/9603A.pdf, "Principles of electronic 
computers: course February 1948".  It mentions that, at time of writing, the 
only functioning electronic computer was ENIAC.  (That may not be entirely 
accurate, considering possible classified machines, but it's certainly close.)  
It describes the key components of a computer, and gives an outline of what an 
instruction set might look like.  No suggestion that the instruction set in 
question corresponds to any actual design, though.

Unfortunately it's in Dutch.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] pdp11 and unix

2016-02-27 Thread Paul Koning

> On Feb 27, 2016, at 2:49 PM, Bill Cunningham  wrote:
> 
> Thanks much. Yes I know you were speaking of assembly. I was just considering 
> history. I've always heard binary was first. What that might mean IDK. And 
> there was no evidence presented for that.

It may just be a case of people not familiar with early documents, 
extrapolating from the fact that early programming was in machine language and 
many early machines were binary.  In other words, overlooking the fact that the 
use of octal or even decimal would be a pretty natural choice even right at the 
beginning.

paul


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] NH14 and TR01

2016-02-27 Thread Paul Koning

> On Feb 27, 2016, at 5:00 PM, Timothe Litt  wrote:
> 
>> Timothe, 
>> 
>> 
>> This list that you published an excerpt from, it it available online 
>> somewhere? 
>> 
>> I am curious to understand what the DEC options NH14 and TR01 were?
>> 
>> Are they listed there as well?
>> 
> 
> 
> 
> 
> I don't have info on the NH04...but we know that N* is "pulse height analysis 
> equipment".  But if we look elsewhere, we
> find:
> 

Pulse height analysis sounds like the sort of device you use to do gamma ray 
spectrography -- scintillators attached to photomultipliers, whose outputs are 
pulses with height proportional to the gamma energy.

> So the NH14 is a dual 12-bit Analog-Digital converter, built by DEC's 
> computer special systems group in Merrimack, NH.

CSS was in Nashua, next doors to the FAA "Boston Center" ARTCC facility.  It's 
now partly a billiards club and partly a vacuum technology company.  Merrimack 
was the home of "Comm Engineering", RSTS development, Typeset-8, Typeset-11, 
Assist-11, WPS-8, PDP-15 software support, Telephone Products Group (later 
Ultrix engineering) before that moved to Nashua Spit Brook Road.  Merrimack was 
the first large DEC facility in NH, and according to legend, the place where 
Ken Olsen took Mass. governor Tsongas with the DEC helicopter, saying "this is 
where we're moving all of DEC unless you do something about Mass. taxes".  But 
he did not follow up on that threat.

paul

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

  1   2   3   4   5   >