hackerb9 / vt340test

Tests of VT340 compatibility
Creative Commons Zero v1.0 Universal
40 stars 5 forks source link

Correct response for a DECRQSS query? #13

Closed j4james closed 3 years ago

j4james commented 3 years ago

According to the VT330/VT340 Text Programming Reference, the response to the DECRQSS query is a DECRPSS sequence with a parameter value indicating whether the request was valid or not.

0 = host's request is valid. 1 = host's request is invalid.

I've checked as many other manuals as I could find, and most seem to agree with this. This includes the VT320 user manual, the VT420 programming reference, the VT510 programming reference, and the VT520/VT525 programming reference.

However, the DEC STD-070 reference describes these values the other way, and so do the VT382 manuals.

0 = unknown selection or setting 1 = request successful

I'm hoping you'll be able to confirm which of these is correct, at least for the VT340.

Here is an example of a valid query (requesting the SGR state):

printf '\eP$qm\e\\'; read -n 100

In theory it should respond with something like this:

^[P0$r0m^[\

And this is an example of an invalid query:

printf '\eP$qx\e\\'; read -n 100

Which should respond with something like this:

^[P1$r^[\

If that's not what you're seeing, then maybe we've got another entry for the errata doc.

hackerb9 commented 3 years ago

The VT320 manual and DEC STD-070 seem to be correct while the VT340 manual is mistaken. This make some sense since the VT320 came after the VT330 & 340.

$ printf '\eP$qm\e\\'; read -rd '\'; echo
^[P1$r0m^[\

$ printf '\eP$qx\e\\'; read -rd '\'; echo
^[P0$r^[\
$
j4james commented 3 years ago

Thanks. That's a relief, actually, because that's what most modern terminals have been doing. But note that the test you added to the errata doc has the wrong read delimiter (it's using a forward slash rather than backslash).

hackerb9 commented 3 years ago

Thanks for catching that. Wouldn't want someone else to have to create an errata doc for my errata doc.

dnkl commented 2 years ago

Just wanted to say thanks!

I was basing my own implementation on the VT510 manual, and was confused by both XTerm's and mlterm's responses...