-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
                            [Back] [Bottom] [Index]
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

        -=> Dr. David J. Bradley on IBM PC's Character Set and More <=-

         By Michael Walden - Created: 2025-04-26 - Updated: 2025-04-26

Introduction
------------

For those who do not know, Dr. David J. Bradley is one of the creators of the
IBM PC.  He worked on the ROM BIOS code and implemented the "Control-Alt-
Delete" (Ctrl+Alt+Del) key sequence that would reboot the computer when
pressed.

Here for you to see are the questions I had in an email discussion from
2004-06-08 to 2004-06-10 about the IBM PC character set and other topics.
I have asked questions that need not be asked again now that they are here for
public viewing.

Unfortunately, at D.J.B.'s suggestion, I have to redact the last names of three
people he mentioned the names of since I have not gotten permission by them
to display their names in this transcript.  The redacted names appear like
"X██████."  It is disappointing that I can not include their names since it
diminishes the historic value of this transcript.  I may add names back to
the transcript if I get their permission or find out that they have passed
away.  There are three names left intact (Jesus Andres (Andy) Saenz, Lew
Eggebrecht and Bill Sydnes) since their names already appear on the web in
articles about the IBM PC.

Below are questions by me that are against the left edge of the page.
Dr. David J. Bradley's replies are tab indented to set them apart from my
questions.  (My recent notes are on the far right as "<<<<<<<<<<<<< text".)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

Transcript
----------

Dear Dr. David J. Bradley,

I have a few questions regarding some historical aspects of the IBM PC.
As far as I know, my questions relate to areas not previously addressed.

Thanks in advance,

Michael Walden

	I will do what I can... most of the source material for this stuff is long gone.

	Dr. Dave

------------------------------------------------------------------------

Recall the following from an earlier article [1]:

> ... he (D.J.B.) and several other developers hashed through what he
> cites as "one of my favorite examples of the stuff we got to define,"
> the PC's character set. They chose the ASCII set, then filled in the
> rest of their 256 available characters with characters they'd defined
> for the Datamaster and others they felt would be useful.  The
> character set they defined has lingered through two decades of
> successive PC design.

Over the years, I've seen many different PC compatible systems, each
with slightly different text mode characters.  This comes as no surprise
when you consider that there was no official description of the PC's
character set in the IBM PC Technical Reference.  Unfortunately, the
only information provided was a two page table that depicted the glyphs.
Some of the glyphs in the table don't correctly reflect those actually
produced on screen.  Even IBM didn't get the character set correctly
depicted...  I guess the typesetter was struggling to locate matching
type for all of those strange characters?

Could you provide a *complete* and *correct* description of the IBM PC
character set?

I've already produced what I believe to be the *correct* description.  I
didn't provide it here since I don't want to influence your response.
The characters that I need info on are 1-31, 127-175, and 224-254.  The
rest are clearly discernible and constant across all implementations.

I don't want to put you through a great deal of work here... I'm hoping
that you might already have something on paper, maybe from your files.
If you can't provide an answer easily, I can send you my description,
which you can comment to.  I don't expect you to recall and type 111
descriptions for your response.

On my website [4], I have provided a PC character set table [5] for your
reference.  The glyphs were extracted from an MDA character ROM and
converted to .GIF files.

	*** I do not have any files that can provide information, it is going to be strictly <<<<<<<<<<<<< See Note #1 below.
	from memory.
	Here is my shot.
	1-31, 127 were displayable on the video displays, but since they overlay the ASCII
	control characters, they would not print.  I can remember EasyWriter showing the
	musical note as the end of line character since it is the CR (or LF, I can never
	keep those straight).  As such, there was not a lot of rhyme or reason in the
	decisions.
	1-15 were intended strictly for game playing.
	1-2 smiley faces
	3-6 card suits, Hearts, Diamonds, Clubs, Spades
	7-10 various plus signs                                                              <<<<<<<<<<<<< Plus signs?  I think he mean bullets?
	11-12 male, female
	13,14 musical notes
	15 ??
	16-31 were envisioned as text editing markers.  I do not remember where they came    <<<<<<<<<<<<< See Note #2 below.
	from.  Certainly you can see that 20 is the paragraph symbol that an editor would
	use.  Maybe they came from DisplayWriter?  (also under development in 79-80, but in
	Austin).
	127 ??
	128-165 are international characters.  We selected what we thought would cover the
	Big 5 languages from our Datamaster experience.  Paul C██████ was the planner for
	the foreign stuff....but he is pretty old by now, if he is still around.  Most are
	as they look -- accent grave, accent aigu, umlaut, c cedilla, etc.  Some of them have
	both upper and lower case, but in the interests of space, we put in only a few
	uppercase.
	Not sure about 145-6.
	155-159 are currency symbols beyond the $ of ASCII.
	166-175 came from perusing typewriter keyboards, leftover text edit symbols, the
	upside down Spanish punctuations.
	224-235 are Greek to me :-)
	236-253 are math symbols.                                                            <<<<<<<<<<<<< Should be 236-*254* are math symbols - 254 is a math symbol.
	239 ??
	240 equivalence, or something like that.  I know it's in the discrete math textbook
	241-3, +/-, GTE, LTE
	244-5 upper and lower parts of integral
	246 divide
	247 approx
	248 degree
	249-50 dots
	251 radical, sqrt
	252-3 superscript n, 2
	254 blob                                                                             <<<<<<<<<<<<< blob?  It is "END OF PROOF (Q.E.D.)" - a math symbol

------------------------------------------------------------------------

Could you provide any information on the System/23 Datamaster font?  It
would be interesting to see what changes were made when the IBM PC
version of the font was produced.

	*** Graphics in the s/23 were done with an Intel chip, but I do not know the number.
	It had a built in character generator (as I recall) and would
	fetch the character bytes only once per line, then do the 8 rows of dots without
	reading memory.  As such, I think it had only the ASCII
	character set within.

------------------------------------------------------------------------

Who was the Monochrome Display Adapter (MDA) designer?

	*** Jesus Andres (Andy) Saenz was the overall graphics engineer.  Steve T███████
	and Darwin R██████ worked with him.  Last I knew, Andy worked for Microsoft in
	Seattle, Steve was somewhere in Boulder, and Darwin works for IBM in Raleigh.

------------------------------------------------------------------------

Who was the Color Graphics Adapter (CGA) designer?

	*** See above.

------------------------------------------------------------------------

Was the MDA designed first, for the Datamaster, and the CGA later, for
the IBM PC?

	*** Nope.  Datamaster used the Intel graphics controller.  Both CGA and MDA used the
	Motorola 6849 (all this from memory, so the numbers might be wrong).  s/23 was
	monochrome, like MDA, but I can not recall the size of the font box, but I think it
	was 8x12.  MDA was 9x14 (which is why all of the line graphics that extend
	horizontally are all in two particular columns of the character set table) and the   <<<<<<<<<<<<< Characters in hex columns C and D (Hex C0-DF)
	CGA was 8x8.                                                                                       See Note #3 below.

------------------------------------------------------------------------

Where did the 16 color (text) CGA palette originate?  Were the particular
colors chosen for technical reasons?

	*** Good question.  I will have to get out the TRM and look at the schematics.  I do
	know that color monitors of the time (the ones not using NTSC baseband) had 4 binary
	digital inputs -- RGB and Bright.  So the 4 combinations of those bits yielded the
	colors for the IBM Color Monitor.  I do not recall how we did the NTSC phases.  I do
	know that we used a 14.31818 crystal so 1/4 was the color burst freq.

------------------------------------------------------------------------

What is the correct name for the IBM computer that lead to the PC,
"System/23 DataMaster" or "System/23 Datamaster"?  In a message that you
posted [2] the "M" is uppercase.  On IBM's Archive site [3], the "m"
appears lowercase.

	*** I always thought it was "M" but I must be wrong.

------------------------------------------------------------------------

Do you still have any documentation for the System/23 Datamaster?
There's little to no *detailed* information available on the Internet.
Even a product flyer would be a nice addition to what's available.

	*** I will look, but I do not recall any.  I *might* have some in my files that I drug
	home from IBM.

------------------------------------------------------------------------

Recall the following from an earlier article [2]:

> ... We didn't have a reset button, and even if we had had one, it
> would have sent the processor all the way back through the long Power
> On Self Test.  So I added a special key sequence that would effectively
> reset the hardware, but would bypass the long memory test.  I had done
> something similar in the System/23 DataMaster.

In situations where the CPU would totally lock, the above was
insufficient to produce a reset.  When considering the simplicity in
implementing a reset button, the Power Good signal to ground through a
momentary switch, it would seem that IBM had a reason for omitting the
reset button.  Was it a cost issue?  If the memory test was a big issue,
why didn't you implement a jump out of testing when the ESC key was
pressed? (that should have only consumed a small number of bytes in ROM)

	*** (1) Reset button:  (a) It would have cost money.  (b) It was an ugly design,
	since the motherboard did not come to the front of the chassis (remember the power
	switch on the back right side?), so we would have had to mount a switch somewhere
	and then run wires to the motherboard.  The angled plastic bezel was not conducive
	to mounting a switch.  (c) KISS -- hitting the button would stop everything right
	now.  Making it idiot proof would have been impossible (idiots keep getting
	dumber).  (b&c together) You would have to put it somewhere so that it did not get hit
	by accident.  Yeah, all those things could be overcome, but why bother?  The Big
	Red Switch did the same job, only slightly slower.
	(2) Skip memory test:  Obviously it could be done, but KISS says do not let the user
	skip a potentially valuable activity.  And, we were looking to make sure that the
	KB was not stuck and sending scan codes.  Once again, probably could have been done
	differently, but why?  And, we started with a blank sheet of paper in 9/80, shipped
	the first prototype on 12/1/80 (I delivered it to MS) and had essentially finished
	the design by 3/81.  Some problem fixes followed, but for all intents and purposes
	it was a 6 month design without the piece part industry that now exists.

------------------------------------------------------------------------

It's my intention to provide the information gathered here to others via
newsgroups, web pages, etc.  Do I have your permission to reproduce this
information?  Of course I will cite you.

	*** If you correct my errors and expand all the contractions.  You probably
	should not use the other names unless you get their permission.

------------------------------------------------------------------------

Thanks for you assistance,
Michael Walden

	*** A dialog may be necessary to completely answer your questions.  So keep asking.
	And, another source that you probably can not find through IBM is Lew Eggebrecht.  He
	was the chief designer, and virtually all of the hardware had his hands on it.
	However, he was booted from IBM under a cloud of suspicion in 1982(?) so he does not
	"exist" to any IBM sources.  He and Bill Sydnes (hardware manager) worked together
	at Franklin, and closed it down, then worked together at Commodore (closed it
	down).  I do not know what happened to either of them after that.  Google does not do
	me any good with Lew after the Commodore period.  Last I knew he lived in
	Denver-Boulder, but that's at least 10 years old.

	Dr. Dave


Links:

[1] ^ <https://Web.Archive.org/web/20050913110941/http://www.itworld.com/Comp/1220/IDG010808PC20/> <<<<<<<<<<<<<<<< Link updated to Archived copy.
[2] ^^ <http://maelstrom.stjohns.edu/CGI/wa.exe?A2=ind9907b&L=cyhist&F=&S=&P=1204>  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< GONE - no archive.org copy.
[3] ^ <https://Web.Archive.org/web/20080622194815/http://www-03.ibm.com/ibm/history/exhibits/pc/pc_9.html>  <<<<<<< Link updated to Archived copy from 2008.
      <https://Web.Archive.org/web/20230906185136/https://www.ibm.com/ibm/history/exhibits/pc/pc_9.html>  <<<<<<<<< Link updated to Archived copy from 2023 - slightly different layout - last archived copy.
[4] ^ <https://MW.Rat.bz/>  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Link updated
[5] ^ <https://MW.Rat.bz/mdarom/djb>  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Link updated

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

My Notes
--------


Note #1 ^
---------

Since D.J.B. was not able to shed new light on any specific character names,
I initially viewed his response to my question on "a *complete* and *correct*
description of the IBM PC character set" to be of no help and disappointing.
(That is the reason why I had not published this transcript sooner.)

After further thought, I have come to the conclusion that the takeaway is not
about specific character names, but rather, the definition of character range
purposes.  So, I am making the best of it...

IBM PC Code Page 437 character ranges
-------------------------------------
(0        Blank)
1-31, 127 non-printing control characters.
1-15      were intended strictly for game playing.
16-31     were envisioned as text editing markers.
(32-126   ASCII graphic characters)
(127      the House character - D.J.B. marked as ??)
128-165   are international characters.
155-159   are currency symbols beyond the $ of ASCII.
166-175   came from perusing typewriter keyboards, leftover text edit symbols,
          the upside down Spanish punctuations.
(176-223  "Box Drawing" and "Block" graphics characters)
(224-254  Math characters)
224-235   are Greek to me :-) (With an eye towards math use and not intended
                               to be a complete Greek alphabet.)
236-253   are math symbols. (I believe he would agree the range is 236-*254*
                             when considering 254 is "END OF PROOF (Q.E.D.)"
                             a math symbol which he was unaware of (blob?).)
(254      END OF PROOF (Q.E.D.) - a math symbol)
(255      Blank)
-------------------------------------

All text above in parentheses "()" are my additions / comments.

For those who think this table is just obviousness, I beg to differ.

Have a look at the following link, after you finish reading this article, to
see where the above chart helped me finish clarifying errors in the IBM PC
character set mapping tables.:

The IBM PC Character Set Confusion Clarified
 https://MW.Rat.bz/confusion/


Note #2 ^
---------

Characters 16-31 came mostly from Wang (2200) word processors.

Bill Gates quote #1:

"But here we’d put in our favorite fully-extended character set. Came up with
some new ideas there. Put some special things in here that we thought we’d be
able to use. In fact, we put in the Wang word processing character set because
we weren’t sure whether to do a Wang-clone word processor, or start with our
own approach at that time."

Source:
SMITHSONIAN INSTITUTION Video History Interview with Mr. William "Bill" Gates
 https://AmericanHistory.SI.edu/comphist/gates.htm

Bill Gates quote #2:

"Yeah, we were also fascinated by dedicated word processors from Wang, because
we believed that general-purpose machines could do that just as well. That's
why, when it came time to design the keyboard for the IBM PC, we put the funny
Wang character set into the machine--you know, smiley faces and boxes and
triangles and stuff. We were thinking we'd like to do a clone of Wang word-
processing software someday. 

Source:
FORTUNE Magazine - BILL GATES & PAUL ALLEN TALK
 https://Web.Archive.org/web/20220110124030/https://archive.fortune.com/magazines/fortune/fortune_archive/1995/10/02/206528/index.htm
 https://Money.CNN.com/magazines/fortune/fortune_archive/1995/10/02/206528/index.htm

You can see the Wang 2200 ROM font in the WangEmu emulator program.

Jim Battle's WangEmu - A Wang 2200 series computer emulator
 https://www.Wang2200.org/emu.html

And in an image on the emulator's old web page archived here:

 https://Web.Archive.org/web/20081216163736/https://www.wang2200.org/emu.html
 https://Web.Archive.org/web/20160315142412/https://www.wang2200.org/emu/wangemu_pc.png

 
Note #3 ^
---------

What D.J.B. is referring to with respect to "MDA was 9x14" is as follows:

The IBM Monochrome Display Adapter (MDA) has 9×14 character cells on screen.
The font ROM only contains 8x14 character cell data.  The 9th pixel column on
the right side of each character cell, when displaying characters hex C0 to
DF, is a duplicate of the right 8th pixel column stored in ROM data.  That
allows for the "Box Drawing" and "Block" characters (in hex C0 to DF) to have
seamless connections across character cells.  For all other characters the
9th pixel columns on the right side of the cells are left blank, providing a
one pixel gap between characters which improves readability.  This virtual
9th pixel column technique allows for the saving of ROM space while still
providing 9x14 characters on screen.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Some recently added links on the IBM PC
---------------------------------------

David Bradley (engineer) - Wikipedia
 https://en.Wikipedia.org/wiki/David_Bradley_(engineer)
 
[ VC&G Anthology ] Origins of the ASCII Smiley Character: An Email Exchange With Dr. David Bradley (2011)
 https://www.VintageComputing.com/index.php/archives/790/the-ibm-smiley-character-turns-30
 (Mentions: Andy Saenz and Lew Eggebrecht)
 
The Misfit Who Built the IBM PC - June 5, 2024
 https://Every.to/the-crazy-ones/the-misfit-who-built-the-ibm-pc
 (Mentions: Lew Eggebrecht and Bill Sydnes)
 
Project Chess: The Story Behind the Original IBM PC - August 12, 2021
 https://www.PCMag.com/news/project-chess-the-story-behind-the-original-ibm-pc
 (Incorrectly spells Bill's last name Syndes when it should be Bill Sydnes)
 (Mentions: Lew Eggebrecht)

Origin of the IBM PC - 2006.08.12
 https://LowEndMac.com/2006/origin-of-the-ibm-pc/
 (Mentions: Bill Sydnes)

EasyWriter - Wikipedia
 https://en.Wikipedia.org/wiki/EasyWriter

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

Thanks
------

Thanks to Dr. David J. Bradley for answering my questions and thanks to Mr.
Heikki Lotvonen <https://Blog.GlyphDrawing.Club/> for inspiring me, causing me
to get my act together and get this article posted.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

    (This document was originally published here: https://MW.Rat.bz/djb )
                         Counter:  559  (Since 2025-04-26)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
                              [Back] [Top] [Index]
                            [Contact Michael Walden]
                      [Validates as HTML 4.01 Transitional]
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
                                     [EOF]