May 8, 2000

By Karen Kenworthy

IN THIS ISSUE

<sigh> Lovely Monica (who helps me keep my office under control) and her parents were here last week. A young man has asked permission to court her! First her father, then Monica, gave their consent. We've all known the young man for a while, and he seems like he might be worthy (he even works with computers). But Monica will be the judge of that. For now, the rest of us get to watch this fairy tale unfold ... :)

Control Codes

Things have been a bit slower for the rest of us at the secluded Power Tools workshop this week. As you know, we've talked a bit about the ASCII Code Table recently. This table contains the numbers computers assigned to our favorite letters of the alphabet, punctuation marks, digits, and other common symbols. The table, for example, reveals what you and I know as the capital letter "A" is known to our computers as the number 65.

For reasons even I don't fully understand, the Winmag.com URL Discombobulator can display the ASCII Code Table. But Ray Mueller felt something was missing: "I like your Discombobulator. You probably didn't want to include the full ASCII table but I wanted it for completeness. Hope you don't mind. I included what I did to see what I mean." Ray then went on to provide some changes to the program's Visual Basic source code.

Ray's right. The ASCII Code Table my program displayed was incomplete. It showed all table entries that correspond to "printable," or visible, symbols -- things like "A," "#," and "7." But some of the entries in the ASCII Code Table pertain to things we can't see. These normally invisible entries are known as "Control Codes." They reveal their themselves indirectly, by telling programs, printers, and other electronic gizmos what to do while presenting text or other printable information.

The most familiar Control Codes are Tab, Carriage Return and Line Feed, which date back to the olden days of teletypes, and even typewriters. A Tab character, for example, causes the data that follows to be shifted to the right until it aligns with the next "tab stop."

A Carriage Return character (sometimes call just "Return" or "Enter") indicates that a line of text has ended. In the case of a typewriter or printer, with a moveable carriage, the carriage will return to its left-most position, to prepare for the next line of text to be printed. A Line Feed character orders the printing mechanism to move one line down the page, so the next line won't overwrite the last. Carriage Return and Line Feed characters often travel together, as the famous "Carriage Return-Line Feed" sequence, CRLF.

All told, there are 32 Control Codes in the ASCII Code Table. They still reside in the prestigious first slots of the code table, assigned the numeric values 0 (Null) through 31 (Unit Separator). Others include Start Of Header (SOH), End Of transmission (ETX), and NAK (Negative AcKnowledgement).

Most of them are seldom seen these days. Seldom, that is, until I incorporated Ray's suggestion into the newest version of the URL Discombobulator. Now, the program displays those invisible Control Codes (well, their common abbreviations anyway) along with their visible brethren we've seen before.

The new version also displays an additional 128 entries in the ASCII Code Table, known as the Extended ASCII entries. These entries, assigned numbers from 128 to 255, include punctuation marks, letter forms, and symbols used in many non- English languages.

ASCII III

While I was working on the ASCII Code Table, I took a moment to rewrite the portion of the program that displays each entry's numeric value. As you may recall, in addition to good old decimal, the program displays each character's number in hexadecimal, octal, and binary formats.

There's nothing special about these formats. They're just alternate ways to express a numeric value. Each has its advantages, and disadvantages. Hexadecimal, for example, is concise, requiring only two digits to display numbers as large as 255 (in decimal format). Binary is much more verbose, requiring eight digits to express the same value. But it's also the way computers see numbers. And some of us have to accommodate those beasts by looking at the world through their eyes now and then.

Just for fun, I added a new numeric format to the ASCII Code Table. Now, alongside the more traditional number formats, the new table sports a column of Roman Numerals. Yes, now you can amaze your friends with the fact that the plus sign ("+") character, is known to computers as the number 43 (decimal), 2B (hexadecimal), 053 (octal), 0010 1011 (binary, and XLIII (Roman Numerals)!

De-URL

A reader named Roger made another suggestion that's made it into the new Discombobulator. He suggested that the program ignore a URL's protocol, such as "http:", when finding a domain's IP address. That way, full URLs (such as https://www.karenware.com), could be pasted into the program's Domain Name window, in addition to simple domain names (such as www.winmag.com).

And so it does. Now, the Discombobulator accepts both domain names and URLs. When provided the latter, it peeks inside the text and extracts the domain name it contains. In addition to finding the domain names inside familiar Web-style URLs such as https://www.karenware.com and ftp://ftp.karenware.com/powertools/, it will also accept email URLs such as mailto:karenk@karenware.com.

You can download the latest version of the URL Discombobulator from https://www.karenware.com/powertools/ptlookup. While there, check out the program's Visual Basic source code. It now includes a module named CONVERT.BAS which performs the number conversions shown in the ASCII Code Table. As always, it's all free.

And if you see me this week, that young couple nearby may be the lovely Monica, and her beau Bill. If you see us, be sure to wave and say Hi! But don't be surprised if Monica doesn't notice. She's got a lot on her mind these days ...