There is pretty much no discussions about ASCII because everyone is
assumed to already know what it is.
if you need more information.
I'm surprised you didn't figure out to check on Wikipedia if you wanted
to know what ASCII is. If you Google for ASCII, you'll find plenty of
information as well. So I don't know how you could not have found
Next you need to understand what an ASR33 is, which you also seem to not
have tried to find out. An ASR33 was one of the first terminals
available that used ASCII. It was a printing terminal, and it *do not*
have lowercase characters. So no surprise if you emulate one, you will
not have lowercase characters.
Another thing about the ASR33 is that it by standard uses MARK parity.
ASCII is a 7 bit code. And then you have one parity bit, which the ASR33
always sets to 1. So all codes will be in the range 128 to 255 (decimal).
About control characters, I guess you have never wondered why there is a
key marked "control", or what it does. Exactly what different control
characters might do depends on the software.
A few additional comments below.
On 2022-02-07 01:39, Will Senn wrote:
> I have been working to get my mind wrapped around how the sending of key presses to OS/8 work.
> I'm not really understanding what's going on at what level. I press a key combination on my mac,
> in the simulated ASR33. Something get's generated (I'm guessing the source code is definitive for what),
> OS/8 receives something (I'm guessing based on the OS/8 handbook that this is an 8-bit ascii keycode
> in the range 000-377. I can pretty much predict what's gonna happen if I type an uppercase letter or
> a punctuation character, but lower case letters appear to be ignored. Also, I'm a little lost as to how
> to generate characters like Leader/Trailer (or why I might want to) or FORM, or Blank, or RUBOUT
> (fnDelete on the Mac, but this appears to be the sim, not a standard control sequence)... After some
> painstaking research on what ASCII is (surprisingly little quality discussion of it is out there, and
> asking around, I figure out that I could use CONTROL-letter to send some of the control characters that
> are understood by OS/8 - CTRL-J for LINE FEED, CTRL-G for BELL (this appears to be related to the
> ASCII itself, not just an arbitrary mapping).
There are *no* arbitrary mappings.
> The chart in the handbook (and elsewhere) shows characters I would expect to see plus this list (I added the binary and the 7bit octal interpretation in parens following):
> 11 011 110 - Arrow up, open paren, carat, close paren, superscript 2 (whatever that's supposed to represent ): 336 (136)
Are you not able to read plan books with footnotes? 136 is shown to be
an UPARROW, and then you have a footnote saying that the character in
parenthesis might be shown by some models of ASR33. The story behind
this is that 136 was originally UPARROW but in the ASCII table, it was
later replaced by the caret character.
> 11 011 111 - Arrow left, open paren, underscore, close paren, superscript 2 (whatever that's supposed to represent ): 337 (137)
Same story here: LEFTARROW, later replaced by underscore. Really, how
hard can it be to understand a footnote?
> 10 000 000 - Leader/Trailer: 200 (0)
> 10 001 010 - LINE FEED: 212 (12)
> 10 001 101 - Carriage RETURN: 215 (15)
> 10 100 000 - SPACE: 240 (40)
> 11 111 111 - RUBOUT: 377 (177)
> 00 000 000 - Blank: 0 (0)
> 10 000 111 - BELL: 207 (7)
> 10 001 001 - TAB: 211 (11)
> 10 001 100 - FORM: 214 (14)
There are a whole range of control characters. Basically, every
character from 0-31 (0 - 37 in octal) have a meaning, but they are all
non-printable characters. That's what control characters are.
Some might perform some action when received by the ASR33, such as a LF
advancing the paper by one line, or CR moving the printing head to the
leftmost column. But send towards the operating system, it's all up to
the software to do something if it want to.
> At first, I was l confused by the big numbers. Then I figured it out:
It's all with MARK parity.
> A is shown to be 301 in the table, which is 11 000 001 binary. This is 193 in decimal (way bigger than 127, which is what I thought the biggest character was supposed to be. This is why, when working with DEC stuff, you should stick to octal. So, since A is 101, in octal (65 in decimal), it looks like it's off by 200 octal. Subtract 200 from anything in the list and it looks like it maps back to modern ASCII pretty well.
It's all standard ASCII. You are just observing the characters with the
> I still don't know why RUBOUT needs to be fn-DEL, what Blank is, or those Arrow key things, or the Leader/Trailer stuff.
Talk to Apple about that. This has nothing to do with ASCII, PDP-8, OS/8
or ASR33. It's just a question of what Apple decided to interpret the
keys you press on your computer as, when translated to ASCII characters.
The arrow things are just characters. Replaced by caret and underscore
in more modern ASCII (more modern measning something like the end of the
The leader/trailer stuff is only relevant for paper tape, which an ASR33
also had, and which was used by PDP-8 software to distribute source code
as well as binaries. And since it could be a hassle to position the
paper tape exactly at the character that started the content, you
usually had a bunch of filler characters at the start of the tape, which
were acting like no-ops. Same at the end. Hence leader/trailer.
> Anyhow, my question is - where's a good source of information on what's going on with the ASR33 -> OS/8 side of things.... other than the ASR33 manuals which go into WAY too much detail about levers and tines and such?
I don't understand the question.
When OS/8 sends a character out, the terminal (don't matter what model)
will either display, or act, on the character.
When you press a key on the terminal (don't matter what model) the
corresponding ASCII code will be sent to OS/8, and OS/8 will process it.
There isn't really anything more to it.
Or are you just wondering which control characters OS/8 do something
If so, see page 1-33 (Using the keyboard monitor) in the OS/8 handbook.