4 ms·
> The use of out-of-band characters like NULLs to separate pieces of text does help, but I don't think there is a complete solution. NULL is actually in-band,
by wtbob 10y ago
> The use of out-of-band characters like NULLs to separate pieces of text does help, but I don't think there is a complete solution.
NULL is actually in-band, not out-of-band, and in fact it illustrates the issues with in-band communication you mention. That's what, presumably, ESC was for: a way to signal that the following character was raw and did not hold its normal meaning.
You can still devise a pretty good protocol with straight ASCII over a wire, using SYN to synchronise the signal, the separator characters to separate data values and ESC to escape the following character (like '\' is used in many programming languages).
- kps 10y ago> That's what, presumably, ESC was for: a way to signal that the following character was raw and did not hold its normal meaning. Yes, ESC is a code extension mechanism: it means that the following character(s) are not to be interpreted according to their plain ASCII meaning, but some other pre-arranged meaning. Ultimately a shared alternate meaning for terminal control was standardized as ISO 6429 aka ECMA-48 aka “ANSI”. Free reading: https://www.ecma-international.org/publications/standards/Ecma-048.htm https://www.ecma-international.org/publications/standards/Ec... That this gave us keyboards with an Escape key that GUIs would repurpose to mean ‘get me out of here’ is a coincidence. (Plain ASCII had Cancel = 0x18 = ^X for that.) MIT culture for historical non-ASCII reasons also referred to Escape as ‘Altmode’, which is ultimately how EMACS and xterms ended up with their Alt-key/ESC-prefix clusterfjord.
- fanf2 10y agoDLE not ESC https://en.wikipedia.org/wiki/C0_and_C1_control_codes#DLE https://en.wikipedia.org/wiki/C0_and_C1_control_codes#DLE ESC is used for introducing C1 control sequences