The world we live in today is a global world; we no longer conduct business solely within one country. Our applications must make the transition from one country to another seamlessly. The XPG standards are defining what services must be available to effect this transition. This process is called internationalization. This involves the display and printing of characters, both common ones and ones unique to individual languages. The format of date and monetary fields, and the collating sequence of the characters. Now to get a better grip on this, let's first off define some terms. A character set is the set of characters that you see on your keyboards or your printers that you can print. Internally, those characters are represented by unique hexadecimal values in memory. The relationship between the hexadecimal value and the character diagram is to find in a list called a code page. z/OS itself has no support for code pages. TSO, ISPF has support for code pages like COS Unix, but differently. Each country and region might also have a unique code page called the country extended code page, which relates the hexadecimal values from 00 to FF into a character set with the different characters used, including needed letters in that language. Data coming from z/OS datasets or from a workstation could be in any of the code pages shown here. The special characters shown here are the 14 variant characters that are often different between the code pages. The individual country extended code page includes characters, letters in the alphabet that also require unique considerations. This diagram illustrates some of the problems you meet in an international environment. Let's look at the various translation issues and some solutions. First, let's look at a relatively simple situation in a USA environment. Here are some possibilities to consider. Customize your keyboard using the features of the emulator to correctly correct hexadecimal coding for the characters. If you're a TSO user, specifying the OMVS convert parameter when you enter the shell. If you're using the z/OS Unix shell through the TCPIP or a login or tele support, use the chcp shell command to convert from ASCII to the z/OS Unix code page. When using OPUT, OGET, and OCOPY, use the convert parameters on these statements. But what about shell scripts and translation with international character sets? Since many shell scripts use special characters, they must run the code page they were created with. This means that uses in other countries have to have their own translated copy of the script or they'll have to change to the code page that goes with the script. The ICOPY command can be used to translate the scripts from one code page to another. Here you see that hash sign is represented as something else when you change the code page. This character has a special meaning in a shell script. If this character is changed to something else, well, the shell script will not work as it should. This visual illustrates the problem from another angle. Here is a script with 3270 emulator program in IBM 1047 USA code page, and IBM 277 Danish code page. These are all things to watch out for when using international character sets. Let's wrap this up with a comparison of different functions in TSO and the Unix shell. Command processing in the shell is similar to command processing for C lists. In combination with the shell in utilities, the shell provides a programming environment as rich as the REXX environment in z/OS. Hierarchical files can be edited from z/OS using ISPF menus. The ISPF menus can be invoked by the TSO commands OEDIT and OBROWSE. In the shell, the editor can be used to edit HFS files. In z/OS, SDSF is used to monitor and control batch jobs. The TSO/E commands, status, cancel, and output can also be used. In the shell, there are multiple commands to control jobs including ps, jobs, kill, fg, bg, and wait. Background jobs are submitted to the TSO/E commands submit in a z/OS environment. In the shell, a command ended with an ampersand runs in the background. You can also use the shell submit command. Now in the next module, we'll move on to address functions in COS Unix.