SOSI - Shift-Out/Shift-In Codes for Double-Byte Character Set

#### Search Results

Search

# SOSI - Shift-Out/Shift-In Codes for Double-Byte Character Set

This Natural profile parameter is relevant for Asian countries which use double-byte character sets (DBCS).

If the profile parameter `CP` is set to a multi-byte code page (MBCS), the logical shift-in and shift-out characters will be supplied with the code page and therefore `SOSI` will be ignored.

Possible settings | See Positional Subparameters below.
Default setting | none |
Dynamic specification | yes |
Specification within session | no |

The following topics are covered below:

- SOSI Parameter Syntax

- Positional Subparameters

- Conversion of Logical Shift-Out/Shift-In Characters

- Automatic Adaptation of Translation Tables

- Compatibility of SOSI Profile Parameter with SO and SI Profile Parameters of Previous Natural Versions

- SOSI Parameter Examples

## SOSI Parameter Syntax

The parameter syntax of `SOSI` is as follows:

SOSI=(logical-shift-out,[physical-shift-out],logical-shift-in, [physical-shift-in],[SO/SI-display-length])

A shift-out code is used to indicate the point at which the code of character representation is shifted out of normal (single-byte) mode into double-byte mode.

A shift-in code is used to indicate the point at which the code of character representation is shifted from double-byte mode back into normal (single-byte) mode.

## Positional Subparameters

The positional subparameters are described below:

Subparameter | Explanation
--- | ---
logical-shift-out | The logical shift-out character must be a single character. Specify the hexadecimal representation of the logical shift-out character. Usually, the value `0E` is used for IBM hardware.
physical-shift-out | The value of the physical shift-out character must be chosen depending on the screen hardware that is used. The length of the physical shift-out character may be one or two bytes. Specify the hexadecimal representation of the physical shift-out character. The default value is the logical shift-out character.
logical-shift-in | The logical shift-in character must be a single character. Specify the hexadecimal representation of the logical shift-in character. Usually, the value `0F` is used for IBM hardware.
physical-shift-in | The value of the physical shift-in character must be chosen depending on the screen hardware that is used. The length of the physical shift-in character may be one or two bytes. Specify the hexadecimal representation of the physical shift-in character. The default value is the logical shift-in character.
SO/SI-display-length | The number of bytes occupied on the screen by the physical shift-out/shift-in characters. Possible values are 0 and 1. The default value is 1. For IBM hardware, the value 1 must be used.

## Conversion of Logical Shift-Out/Shift-In Characters

Logical shift-out/shift-in characters are converted into the corresponding physical shift-out/shift-in characters before data is transferred to the screen.

Physical shift-out/shift-in characters are converted into the corresponding logical shift-out/shift-in characters before data entered on the screen is transferred to the Natural application.

## Automatic Adaptation of Translation Tables

If code page support is disabled (that is, the profile parameter `CP` is set to `CP=OFF`), the entries for the logical shift-out/shift-in characters are updated in the translation tables provided by the following macros and profile parameters:

Table | Macro | Profile Parameter
--- | --- | ---
Standard (primary) output translation table | `NTTAB` | `TAB`
Alternative (secondary) output translation table | `NTTAB1` | `TAB1`
Secondary input translation table used when the session parameter `PM` is set to `C`. | `NTTAB2` | `TAB2`
SYS* output translation table | `NTTABL` | `TABL`

If the characters into which the logical shift-out/shift-in characters are to be translated still have their default value (`?` = `X’6F’`) in the respective translation table at Natural startup (that is, they have not been modified by one of the macros or profile parameters mentioned above), they will be updated so that logical shift-out/shift-in characters will not be not translated for input and output.

For detailed information on the translation tables, see Translation Tables in the Operations documentation.

## Compatibility of SOSI Profile Parameter with SO and SI Profile Parameters of Previous Natural Versions

The subparameter logical-shift-out corresponds to the profile parameter `SO` and the subparameter logical-shift-in corresponds to the profile parameter `SI` that were available with previous Natural versions.

Specifying `SOSI=(xx,xx,yy,yy,1)` is equivalent to specifying `SO=xx,SI=yy`.

## SOSI Parameter Examples

For IBM hardware, you should use `SOSI=(0E,0E,0F,0F,1)`, which is equivalent to `SOSI=(0E,,0F,,1)`.

### On this page

- SOSI Parameter Syntax
- Positional Subparameters
- Conversion of Logical Shift-Out/Shift-In Characters
- Automatic Adaptation of Translation Tables
- Compatibility of SOSI Profile Parameter with SO and SI Profile Parameters of Previous Natural Versions
- SOSI Parameter Examples