EZACIC15

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.