[Resplendent intro sounds] *click* *Compaq whirrs into life with a gradually increasing mechanical spin* *hard drive clunking* If you've used MS-DOS in the past, you're
probably familiar with this character. This is the pipe symbol, and it's incredibly useful.
It allows you to "pipe" or send, the output of one program, to another program. "This episode is sponsored by SquareSpace. More on that later" If I were
to enter "type readme.txt" into this computer, it would spool out a huge readme file, giving
no time to read it. However, it I were to enter "type readme.txt | more", the output
gets sent to the 'more' command, which handily breaks the document down into screen size
chunks. But there's an issue with this pipe symbol,
and the issue is that, well, it doesn't actually exist, and what's more, there are often two
apparently identical instances of it on keyboards, neither of which are existing in the way they're
supposed to. Allow me to explain. [tense drum beat, intended to symbolise code communication methods] For centuries mankind has been using code
to communicate, but it was really the telegraph which set a standard for a universally understood
binary type communication with the International Telegraph Alphabet. This used 5 pulses of
electricity to encode the letters of the alphabet and various figures, so they could be successfully
decoded at the opposite end. Computers also needed character codes, so
that data could be sent, processed and stored in the computer's memory. The problem was,
by 1960, there was at least 29 different code standards being used by computers around the
world. IBM for example, even had multiple character codes used across their own systems.
Some standardisation was needed, just like the Telegraph. Although that couldn't be adapted
for computers, because if you arranged the signals in binary order, it just produced
a complete mess. And so, the American Standards Association
(ASA) began the process of character code standardisation on the 4th August 1960, creating
the X3.2 subcommittee for Coded Character Sets and Data Format. By March 1961, an initial code was produced.
This one; 54 characters, arranged across 4 columns and 15 rows. This gives you a maximum
of 60 characters, which fits into 6 bits. It's a 6 bit code. So going from this example,
T is column 3, which is 11 in binary, and row 7, which is 0111, giving a binary code
of 110111 for T. Of course, at the time, punched card was used for entering data. So this would
be represented by two punched holes, one space and three more punched holes. This is also
why we have null at the start of the table, as that leaves all holes un-punched (binary
000000), and delete at the end of the table, as that punches all holes, removing any data
that was present (binary 111111). However, that's not what the binary code for
T would actually end up being, and, you'll note that a lot of the characters we used
today, are missing from this table. The lower case alphabet for starters. Therefore it was
decided in May 1961, that a family of related codes, of different sizes would be created.
A four bit numeric set, A shifted five bit set, a six bit set for data processing, a
7 bit set for communications and an 8-bit expanded set. The 7 bit set was identified
as the prime set for information exchange. It was this initial 7 bit set from the 1st
June 1961. Already very different from the first. It's also the first where we see the
pipe symbol, or vertical line. The reason for it's inclusion is that it's actually the
logical OR symbol, and therefore grouped among other mathematical symbols, such as greater
than, less than, logical not. You get the idea. However this table, this code, gave minimal
concessions to keyboard design. For instance, if two symbols reside on a key, ideally you
want them in the same row, because it equates to only a single bit difference between each
character. This allows the keyboard to be mechanically simpler. You have to remember
that, at this point, Hollerith or mechanical keyboards were often used to physically punch
data into card or tape, to be fed into the computer, and so This character set lacked
elegance and practicality. And so, in collaboration with other global
standards authorities, including the UK and Europe, the arduous process of determining
a satisfactory 7 bit standard began. Now, I won't bore you with each subsequent
revision, but I can tell you that it would take another 6 years before the standard was
agreed, with the vertical line phasing in and out of existence throughout. By 12th May
1966, we had this setup. Which looks much better, with corresponding shifted values
in the correct rows, and the ability to create subsets of the set. The idea here was that the middle 4 columns,
could be taken as an international subset, and used on 6 bit machines, leaving some of
the outside characters as part of the greater 7 bit set. Some of these outlying characters
could also be re-purposed as part of a national set, for localised accents and other requirements. Based around this draft, the International
Standards Organisation would draft this proposal. You can see some characters are designated
for national use. We also have a pound symbol where hash was, giving you some idea as why
American's refer to the hash, as the pound symbol. However, even though this draft got
international approval, it caused some upset, mainly with an IBM user group known as SHARE.
The chairman, H. W. Nelson, would pen an irate letter to the ASA entitled; "The Proposed revised American Standard Code
for Information Interchange does NOT meet the needs of computer programmers!"; His point was there weren't any characters
in the international subset that can be used to satisfactorily represent the logical operations
of OR and NOT. His proposal was that the code table be rearranged like so, with the vertical
line/OR at position 2/3 and the not/negate symbol at 2/4. This would allow for operation of programming
languages such as IBM's Programming Language 1 universally, and on a wider variety of platforms. But as the original International Standards
Organisation - or ISO - draft had already been accepted, changes would be difficult.
So a compromise was made. Both the circumflex and exclamation mark would need to allow the
ability to interchange with the logical NOT and logical OR symbols respectively. As if
they were shape-shifters. So in some uses, such as programming, pressing these key commands
would create logical symbols, and outside of programming, or on a different machine,
they would produce their original symbols. So, in an attempt to appease this significant
and important programming community, the standards document was annotated as thus; "it may be desirable to employ distinctive
styling to facilitate their use for specific purposes as, for example, to stylise the graphics
in code positions 2/1 and 5/14 to those frequently associated with logical OR and logical NOT
respectively" The original vertical line, found in 7/12
was then broken, so that users would not mistake it as a logical OR symbol, which would then
create erroneous output, and the ASCII character codes were formed. So, this broken bar would
become ASCII character 7C. You get that with the formula 16 x X + Y, where X is the column
number and Y is the row number. That gives us 124, which is 7C in Hex. -sponsor start- Which brings me onto my sponsor, Square Space.
Now, this is my last slot in this run with Square Space, so I want to give them a big
thanks for sponsoring me, and frankly, allowing me to upgrade some of my videography equipment.
Look out for some improvements in future videos. But if you want to create your own website,
for, well, any purpose, be it business or pleasure. Square Space has your back. It's incredibly simple to get a website up
and running with a custom domain using their platform, with effortless tools and guides
to help you along, and right now you can grab 10% off your first purchase by visiting the
link in the description; squarespace.com/nostalgianerd But remember, this is the last sponsor segment
in this run, so don't hang about. Check them out with the link below. -sponsor end- [Funky synth music to ease us forward into a new world of ASCII] And so, on the 5th July 1967, THIS would become
the American Standards Code for Information Interchange, or ASCII. With the equivalent
ISO 464 code published as a recommendation in December of the same year. Ensuring text
remained readable and usable on multiple machines. All fonts would therefore be created around
this character set, with the keyboard interface generating the correct signals to call the
relevant characters up from ROM, or software. So then, this explains why we have our broken
vertical bar on the keyboard, and indeed, why it appears in our software. It was part
of the character set, but as, it was no longer needed for it's original operation, computer
programs began re-purposing it for their own uses. So, going back to our initial example;
this is how DOS ended up using it for the useful PIPE command. Although, really it was
stolen from Unix, which had been using it since the early 70s. BUT.... something happened between 1967 and
the release of DOS & the IBM PC Compatible that SHOULD have had implications. [Implicating organ music to herald a new ASCII world order] ENTER ASCII-1977 [Funky '70s rock with hammond organ] Yeah man, the 70s were a different, funkier
time, and it meant what was once taken out, went back in. Yes, ten years on, and with the SHARE group
apparently a distant memory, ASCII-1977 went about undoing the compromises of the original
ASCII-1967; The hash symbol could no longer be replaced by the pound. The Circumflex could
no longer be stylised as a logical NOT, and importantly, the exclamation mark could no
longer be stylised as a vertical bar. This meant, the original 7C broken bar, was
repaired to be a beautiful full, flowing, continuous bar. Yep, it was back in business
again as Logical OR. Internationally these had actually been done even sooner, with ISO
646-1973. Seems like it really was done just to appease PL/1 programmers for a few years. So enter the IBM PC in 1981, and enter Microsoft
DOS, and what do we have. Yup, we've still got that broken bar. THIS CHARACTER DOES NOT CONFORM TO ASCII STANDARDS
FOLKS. This character should not exist. But yet, it does there, and it does on almost
every keyboard of the 1980s and 1990s - or IBM PC compatibles AT least - and in fact, still a LOT of keyboards up until
this day. But that in part is due to the IBM PC using
it's own character set. This is called Code Page 437, and should look pretty familiar
to you. It's actually an 8 bit character set. It just does away with the extra 1 bit parity
check used on the original 7 bit ASCII set, and gives us a load of graphical characters,
Commonly used for DOS programs like Edit, Scandisk and QBasic. All the non ASCII characters
have bespoke numbering conventions, to avoid confusion and interpretation issues. It's based on ASCII, includes all printable
ASCII characters and extended codes, and it's sometimes referred to as "High ASCII". I'm
not sure whether that's because it looks like it's on drugs or not, but it's not strictly
speaking ASCII compatible. But rather than pulling the solid vertical bar from 1977 ASCII,
it uses the broken bar that IBM had been accustomed to since 1967. Now, if you're from the United States, or
really anywhere else, you might wonder why it's down here. Well that's because this is
a UK keyboard. Remember those earlier dollar symbol, pound shenanigans. Yeah, so this is
why UK keyboards are commonly 62 key, rather than 61; The pound symbol is on 3, meaning
the hash symbol is now on an extra key down near our larger Enter key, meaning the key
you Americans usually have over the enter key is actually now down here, and up here. Oh god, what the hell is this? We have TWO vertical bars now. What is this?
Two PIPE symbols. What is going on here then? [Funky detective style music] Yes, UK Keyboards have a second vertical line
to the left of the 1 key. It's shared with that logical NOT symbol and a grave accent,
used in various languages. If you're American and you have an international keyboard, then
you'll find the second vertical line on the same key as the first vertical line. Although
I'm not sure that makes it easier to comprehend. If anything, it's worse. Anyway, on a lot of character sets, these
two symbols will look identical. The original PIPE is ASCII 007C, whilst this new one is
00A6, and it's accessed on a UK keyboard using the Alt-GR key and the top left key. The reason
it's here is due to the extended ASCII codes introduced in 1985 with ISO 8859-1 or ECMA-94.
Also known as Latin 1 it consists of 191 characters from the latin script. Under DOS it was introduced
as Code Page 850. You can see how it fits alongside the original 7 bit set nicely. With it, this character set re-introduced
back the broken vertical bar. Yes; the bar that was broken in 1967 to stop it being used
the wrong way, was brought back. I guess because people missed it. But, this new broken vertical
bar, is a different character to 7C, so it doesn't really have any purpose, other than
to look like a broken bar. Which ironically, is what 7C still looks like in a lot of fonts,
and on a lot of keyboards. I guess it gives you an extra tool for ASCII
art at least. So if you find an international or UK keyboard
from 1985 onward, you'll likely find it has two solid bars, or perhaps two broken bars,
or even more weirdly, it'll likely had a broken bar where the solid bar should be and a solid
bar, where the new broken bar should be. Things have switched around... In part, this is due to IBM's Model-M keyboard.
It was also introduced in 1985, and has the switched vertical bars, just like Code Page
437. It was also the basis for many keyboards going forward. Yup, it's confusing. so you may come across the odd font that still has the back to front implementation. Whether your keyboard has them the right way
around will vary depending on your keyboard. Some will, some won't. It's amazing, as we're
talking about a hang-over from a standards dispute that now goes back over half a century. But regardless of how they look, the operating
system will recognise them as intended. I mean, it should anyway. So that's why we have two keys with *almost*
the same character, and it's also why those keys, or the characters represented on those
keys, don't actually exist. Well, not in the way they're always intended. So as a recap. This key was once a broken
bar. Represented by a broken bar on screen. But it should have been a solid bar, represented
by a solid bar on screen. Mostly these days that is the case. This extra broken bar, located on some keyboards,
that is sometimes portrayed as a solid bar, but is in fact a broken bar, was introduced
in 1985, and is really just for old times sake, but is a distinct different character
from the original broken bar, so doesn't really serve that purpose. Until it's given a purpose, just like this
one was..... Maybe Unix can have an extra pipe. It seems to like them. Or maybe Youtubers can just use them as a spacing tool in video titles. So I hope that's explained something you probably
never cared about, or wanted to know. Thanks for watching, and have a great evening. [70s music]