HEXCRYPT.DOC This is the documentation file for HEXCRYPT.COM, a program to selectively decode, encrypt, or decrypt, up to 60 characters at a time, typed in at the keyboard, with both input (hexadecimal and decimal ascii) and output (hexadecimal and decimal ascii) shown simultaneously on-screen. DISTRIBUTION This Shareware bundle is composed of HEXCRYPT.COM and HEXCRYPT.DOC which must be uploaded, and downloaded, together. Shareware offers prospective users the full, working program to try on their own computers, before any money exchanges hands. Freeware is free, period. This is NOT Freeware! Registration information is at the end of this documentation file. All rights to HEXCRYPT.COM and HEXCRYPT.DOC are reserved by the author, Anthony M. Parson, Jr., 1431 S. Kenilworth Av. Berwyn, Il 60402. You may freely make copies of HEXCRYPT.COM and HEXCRYPT.DOC and pass them on to friends, upload them to bulletin boards. In fact, I ENCOURAGE you to send this bundle to any bulletin board that you can, even if you do not register this program set for yourself! At least give others a chance to experience this, even if you don't need it. You MUST keep the set (both HEXCRYPT.COM and HEXCRYPT.DOC) together! I do hope that you and all of your friends will register HEXCRYPT.COM, either as a full, or partial user. This will give me the encouragement to continue to write for the Shareware market. REQUIRED EQUIPMENT HEXCRYPT was written for the standard 80 column, 25 row color display, found on IBM-compatible computers. Development started on a CGA, continued with EGA, and these latest revisions have only been tested on VGA, and laptop CGA. Likely, there will be no problems on any CGA, EGA, or VGA monitors. It has never been tested on monochrome, however, and MAY work ONLY if you don't change the background color selection from the default white text on blue background (which should be readable on monochrome), and if you DON'T toggle the black/white text selector. The only direct writes to video are the background screen color changes. Since the monochrome video is in a different place than color video, direct video writes will either be totally ignored, or may cause your monochrome computer to "crash". Just reboot, and learn not to change the colors, if you have only a monochrome screen. If you have both monochrome and color screens on the same computer, run the DOS command: MODE CO80, to get into color, 80 column mode, before running HEXCRYPT. If enough registered users tell me to disallow color changes on monochrome computers, this will be made part of the next revision. This might cause a tiny amount of "snow" on your CGA; it did NOT on mine, possibly because the text was not modified -- just the background colors. Future revisions that involve text color selection will use direct video writes; therefore, there may be "snow" on CGA monitors in the future, even if there is none now. As soon as the color change is done (the tiniest fraction of a second), there will be no more snow, however, so don't let that put you off from trying HEXCRYPT. GETTING STARTED The user has the option of using the characters marked on the keytops, or the ALT key plus decimal keypad method of entering characters for which there is no keytop character (graphics characters, box drawing characters). As the screen is very self-explanatory, this part of the documentation file is short. Once you run the program, by typing HEXCRYPT at the DOS prompt, you are shown the screen layout, and HEXCRYPT is waiting for you to select the "modifier". The "modifier" is the type of logical or arithmetic operation to be performed on all subsequent keyboard character input. Note the numbering, 1 through A -- get used to hexadecimal, as all input is to be in hexadecimal! Actually, as I kept adding functions, I ran out of single digit numbers. Rather than recode the input routine to accept two digit numbers, I started with letters. Until I get up to "F", this is the same as hexadecimal numbering, and so I've called it that! Once you select the modifier, HEXCRYPT waits for the "modifier byte" input, IF that particular modifier accepts a modifier byte input -- not all do. The "modifier byte" can range from 00h to FFh, the largest number that will fit into one byte. Once the modifier byte is selected, the information at the bottom of the screen changes, to show what function key selections can be made. This includes changing the modifier, the modifier byte, screen colors, restarting input (so you don't have to backspace to clear input), etc. The simplest use for this program might be as a "modifiable" ascii table. My original use of the initial coding for this program, was to figure out the hex equivalents of ascii characters, so that I could "burn" them into EPROM chips, and modify XT clone computer BIOSes. However, this program, as now enhanced, goes much farther, to the point of being usable for decoding simple encryption. By selecting the "modifier" and "modifier byte", you can manipulate each character entered at the keyboard (or with the ALT-key + 3 decimal number method) a certain way, with all input and output shown on-screen. Let's say that you want to add a decimal 2 to all input. (why would you want to do this? I'm sure you have a reason) Select "ADD", for the modifier, and "02" for the modifier byte. The rest of the characters that you type will then be displayed on the first line, the hex equivalent will be on the second line, the output ascii will be on the third line, and the hex equivalent of the output ascii will be on the fourth: N o w i s t h e 4E 6F 77 20 69 73 20 74 68 65 50 71 79 22 6B 75 22 76 6A 67 P q y " k u " v j g You can see than when you typed the "N", which is 4E in hexadecimal, the program has used the modifier of "ADD" and the modifier byte of 2 (hexadecimal) to obtan "50" [4E + 2 = 50 in hex], which is then translated into "P". The same goes for the rest of the characters entered. There is enough space for 60 characters of input. Using the backspace will erase the appropriate characters on all 4 lines at once, as expected. The function key assignments are noted at the bottom of the screen. All alphabetical(upper and lower case), numerical, and punctuation are acceptable input. Unacceptable input are the control keys, function keys, etc that don't print to the screen anyway. If you want to use box drawing characters or other things not enterable via a keypressed character, you will need to use hex input mode. You will need to have handy an ascii chart showing the hexadecimal numbers assigned to a character. These will be input directly into the second row; the program will then calculate the first, third, and fourth rows on the screen. In hex input mode, the first digit of the two digit number/letter pair, will not show up onscreen. Originally, when only single ascii character input was enabled, I had a choice of writing each hex input character to the screen, but one had to hit a carriage return after each two digit hex number. As this is written now, one need only hit two digit hex numbers one after the other, without typing carriage returns or spaces. If you hit a character or punctuation mark that is not a legitimate hex digit, you likely won't hear the beep until you hit the second digit, to complete the hex pair. For hex input, only the numbers 0 through 9, and letters A through F are allowed, as expected. Modifier bytes can be any hex number from 00 to FF. Note that some functions do not support a modifier byte, such as ROR, ROL, etc, so HEXCRYPT will skip the modifier byte input prompt for those modifiers. You can change the modifier byte separately from the modifier, after the initial screen. Modifiers supported include: 1) AND which takes a modifier byte, and logically AND's the input character (its hexidecimal equivalent, actually) with the selected modifier byte, which can range from 00 to FF. 2) OR which takes a modifier byte, and logically OR's the input character with the selected modifier byte. 3) XOR which exclusive OR's the input character with the selected modifier byte. 4) ROR 4 which rotates the bits to the right, four times. The end result is the nibbles (half bytes) are switched. There is no modifier byte involved. Examples: if a "P", with a hexadecimal equivalent of xx is input, a " " is output, which is equivalent to a hexidecimal xx. 5) add This allows you to add the modifier byte selected, to the hexidecimal equivalent of the character that is input. If you input a "P", the ascii output will be a "Q". 6) sub This allows you to subtract the modifier byte selected, from the hexidecimal equivalent of the character that is input. If you input a "T", you will get an "S". 7) SHL 1 This will shift all bits to the left by one position. Note that you will lose the bit on the end, as it gets shifted off in to the great bit bucket in the sky. 8) SHR 1 This will shift all bits to the left by one position. Again, you will lose the bit on the end as there is no where for it to go to. 9) ROL 1 Rotates all bits to the left by one position, with the one on the end coming back around. No bits are lost, they are rearranged. A) ROR 1 Rotates all bits to the right by one position, with the one on the end coming back around. Doing this four times is the same as the ROR 4 choice, above. No bits are lost, they are rearranged. It is suggested that if you need further enlightenment about the SHL, SHR, ROL, ROR functions, or the logical (Boolean) functions, that you consult any assembly language programming books around. Exiting the program leaves the screen colors last chosen, as I didn't feel like running another program to change screen colors. I wrote HEXCRYPT to visually show the 10 functions listed above, and how they affected and "worked on" ascii characters. To be sure that the program did what I thought it was doing, I added the displays of the hexidecimal equivalent. I may add the binary equivalent in the future, but I have not so far, because each of the 60 input characters will need 8 columns each, cluttering up the screen. For now, this is being released as shareware; depending on demand [shareware registrations with appropriate registration fees] I may begin that task. A word about printing the screen: there is a choice about how to get a copy of the output screen printed. The reason a simple "print screen" is not done, is because there may be characters showing onscreen, that may cause your printer to change modes, change size of characters, lines per inch, ring bells, do formfeeds, etc. To prevent such tomfoolery, HEXCRYPT will "hide" the ascii input or output lines so that unprintable characters are not being "printed". Normally, either your input OR your output will be relatively "readable" ascii, but it IS possible to have both the ascii input and ascii output such that all hardcopy made will throw your printer into chaos. I may not be able to save you from yourself! HISTORY A short history of modifications and changes: Originally written during summer, 1987 "add" and "sub" added 12/30/87 print screen modified 1/6/88 fixed lagging cursor in ascii mode 1/23/88 color changes for background and border 1/23/88 hex input added 1/26/88 SHL,SHR,ROL,ROR added 1/5/89 changed black/white text to full color text changes 2/7/89 skip unreadable color combinations of text and backgr 2/7/89 VERSION HISTORY version beta title 1.x basic hexcrypt -text black/white only hexcrypt 1.6 basic hexcrypt - color text, 1st shareware ver hexcrypt 2.1 scrunch screen mode (F9), old fkey arrangement hex9 WARRANTY AND DISCLAIMER Just like the large, extremely large, and really huge software companies in these United States, this shareware software carries absolutely NO warranty, either expressed or implied, nor any guarantee of fitness, compatibility, efficaciousness, or safety, of any kind whatsoever. NO liability of ANY kind is assumed for ANY damage this program may cause your computer and/or peripheral equipment, your other software, your emotional or physical health, or anything in the immediate vicinity of your computer, your soul and/or your karma, the room and/or building you and your computer are in, etc. By using this software, you, alone, by yourself, a trembling blob of protoplasm facing the harsh, cruel, vagaries of the world, assume and take all, absolutely all, the risk, liability, and responsibility for anything that happens when you use or try to use this software. In fact, read the fine print on the shrinkwrapped commercial packages sometime, and note that the big corporations don't even affirm that the program actually will do ANYTHING. My warranty is the same: I don't guarantee that this software even exists. I don't even guarantee that I, myself, exist, let alone that the alleged software that you have sitting on your alleged desk , on or in your alleged computer, that allegedly was written by me! "I think, therefore I am" is just one man's opinion... about himself! It is a sad fact of life, as we near the end of the decade, that you no longer get what you pay for, in the form of a guarantee or warrantee, from the "big guys", and the same goes here. [good news, however, follows below] Being shareware, you are able to try this BEFORE you register, BEFORE you buy anything, and BEFORE you send in your hard earned $15 CHECK (check preferred, but I'll accept new U.S.A. postage stamps in the 25 cent denomination -- sixty of them -- and I'll accept cash -- but hide them well in your envelope, as I cannot guarantee that I will receive what you send. Notice that even first class mail is not guaranteed to be correctly delivered, by the Post Office. ---------------------------------------------tear off----------------- REGISTRATION FORM I want to register HEXCRYPT.COM in my name, since I have tried HEXCRYPT.COM, liked it, and use it. I am registering as a Full Registered User, or Minimal User, as marked below. (suggested amounts-- all contributions are cheerfully accepted. Feel free to add comments when mailing in this form, regarding HEXCRYPT's worth to you.) [ ] Full registered user ($15.00). I understand that I can call or write about problems I have using HEXCRYPT.COM, that I can make strong, and facetious remarks, but in a constructive manner, about HEXCRYPT.COM, and that I will be notified of any updates or enhancements to HEXCRYPT.COM, as befitting a fully registered user of any product. I rightfully can suggest improvements be made, to any section of the program (although the author has the final say on this-- depends on how many people request it). OR [ ] Minimal user ($2.00). I understand that this smaller amount will help to relieve the effort involved in, as a partially registered user, HEXCRYPT.COM, that I will be notified of any upgrades and enhancements, and that I realize that I should not make snide remarks about a product that I am not quite fully registered to use. I understand that there is a strong liklihood that mail sent to the author may not be answered, unless I have included a stamped, self-addressed envelope. Enclosed please find $____________. User name:______________________________________________ User address:___________________________________________ User city,state,zip:____________________________________ Comments:___________________________________________________________ ____________________________________________________________________ ____________________________________________________________________ ____________________________________________________________________ Current version number:___________ Mail all contributions to: Anthony M. Parson, Jr. 1431 S. Kenilworth Av. Berwyn, Il 60402