The EZACIC15 program is an alternative to EZACIC05, which translates ASCII data to EBCDIC data.
Figure 1 shows how EZACIC15 translates a byte of ASCII data.
Figure 1. EZACIC15 ASCII-to-EBCDIC table
--------------------------------------------------------------
| EBCDIC | second hex digit of byte of ASCII data |
| output by |-----------------------------------------------|
| EZACIC15 | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| A| B| C| D| E| F|
|------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| | 0 |00|01|02|03|37|2D|2E|2F|16|05|25|0B|0C|0D|0E|0F|
| |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| | 1 |10|11|12|13|3C|3D|32|26|18|19|3F|27|1C|1D|1E|1F|
| |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| | 2 |40|5A|7F|7B|5B|6C|50|7D|4D|5D|5C|4E|6B|60|4B|61|
| |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| | 3 |F0|F1|F2|F3|F4|F5|F6|F7|F8|F9|7A|5E|4C|7E|6E|6F|
| |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| | 4 |7C|C1|C2|C3|C4|C5|C6|C7|C8|C9|D1|D2|D3|D4|D5|D6|
| |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| | 5 |D7|D8|D9|E2|E3|E4|E5|E6|E7|E8|E9|AD|E0|BD|5F|6D|
| |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| first | 6 |79|81|82|83|84|85|86|87|88|89|91|92|93|94|95|96|
| hex |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| digit | 7 |97|98|99|A2|A3|A4|A5|A6|A7|A8|A9|C0|4F|D0|A1|07|
| of |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| byte | 8 |20|21|22|23|24|15|06|17|28|29|2A|2B|2C|09|0A|1B|
| of |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| ASCII | 9 |30|31|1A|33|34|35|36|08|38|39|3A|3B|04|14|3E|FF|
| data |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| | A |41|AA|4A|B1|9F|B2|6A|B5|BB|B4|9A|8A|B0|CA|AF|BC|
| |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| | B |90|8F|EA|FA|BE|A0|B6|B3|9D|DA|9B|8B|B7|B8|B9|A9|
| |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| | C |64|65|62|66|63|67|9E|68|74|71|72|73|78|75|76|77|
| |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| | D |AC|69|ED|EE|EB|EF|EC|BF|80|FD|FE|FB|FC|BA|AE|59|
| |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| | E |44|45|42|46|43|47|9C|48|54|51|52|53|58|55|56|57|
| |---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
| | F |8C|49|CD|CE|CB|CF|CC|E1|70|DD|DE|DB|DC|8D|8E|DF|
--------------------------------------------------------------
Figure 2 shows an example of EZACIC15 call instructions.
Figure 2. EZACIC15 call instruction example
WORKING-STORAGE SECTION.
01 OUT-BUFFER PIC X(length of output).
01 LENGTH PIC 9(8) BINARY.
PROCEDURE DIVISION.
CALL 'EZACIC15' USING OUT-BUFFER LENGTH. IF RETURN-CODE > 0
THEN
DISPLAY 'TRANSLATION FAILED ' RETURN-CODE.
For equivalent PL/I and assembly language declarations, see Converting parameter descriptions .
OUT-BUFFER
A buffer that contains
the following infomation:
When called, ASCII data
Upon return, EBCDIC data
LENGTH
Specifies the length of the data to be translated.
RETURN-CODE
Upon return, register 15 contains a return code value, which indicates if the data translation
occurred successfully. The return code can be one of the following values:
0
The data translation occurred.
8
Too many parameters passed, translation did not occur.
12
Zero buffer length passed, translation did not occur.
16
Zero buffer address passed, translation did not occur.