[Simh] SIMH console settings for escape sequence support

Johnny Billquist bqt at softjar.se
Sat Jan 2 06:27:38 EST 2016


On 2016-01-01 23:08, Mark Pizzolato wrote:
> On Friday, January 1, 2016 at 1:02 PM, Johnny Billquist wrote:
>> Um. What does 7B and 7P stand for here? They are not "normal"
>> designation for 7 bits with some parity... The letters I know of are N - None, S
>> - Space, M - Mark, O - Odd, E - Even.
>>
>> And if you are using anything that manage to print something visible when
>> outputting a NUL, that sounds like something broken somewhere else.
>>
>> Sounds like the current simh code is trying to cover up when people have an
>> error somewhere else in their setup?
>
> Actually, no.  Some simulated systems have very particular expectations of the
> terminal devices which are connected to the system.  They'll output 7bits of
> data with a parity bit.  In general the parity bit isn't useful for essentially any
> modern system running the simulator so 7P and 7B allow the parity bit to be
> stripped off before the data is delivered to the local session.  Besides parity
> bits, as Dave Bryan points out some of these simulated systems presume
> they're talking to ASR Model 33 teletype terminals.  When talking to these
> slow mechanical devices the simulated system often will insert NUL or
> RUBOUT or other characters into the output character stream as non-printing
> delays to accommodate the slow mechanical behavior of the terminal
> when it may be repositioning the print head.  If you happen to be running
> a simulator with a real Model 33 teletype terminal then you would want to
> run the console port in 8B mode so all of the generated characters and
> parity bits get to the terminal, otherwise most folks will want a filtered mode.

I would like to point out that this is in no way ASR-33 specific. Using 
NUL fillers for delays was needed on *lots* of terminals, including even 
a VT100 when running at higher speeds and doing some operations (like a 
linefeed).

So NUL characters was used a lot of the time. And there are also lots of 
other control characters defined in ASCII. And programs sometimes use 
them. And they have defined behaviors. And simh deciding to filter them 
all out is basically wrong. If you have a specific environment, in which 
you are not actually using a proper ASCII conformant terminal, then 
fine, have some way for simh to accommodate such brokenness. But don't 
assume it, and don't enforce it, and don't break everyone else because 
of it.

> Some/most MUX devices (DZ, DC, DL, TTO) have translation mode options to configure this detail:
>
> 8B means pass 8 bit characters unfiltered.
> 7B means just strip parity bits.
> 7P means strip parity bits and only allow control characters which are in
> the PCHAR mask to be output and also ignore output of RUBOUT characters.
> UC means do 7P and convert lower case to upper case

Just learned about those designations. Thanks.

	Johnny

-- 
Johnny Billquist                  || "I'm on a bus
                                   ||  on a psychedelic trip
email: bqt at softjar.se             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol


More information about the Simh mailing list