captured from a message in a public CompuServe Forum
Author: Dick Goran, (see EMail
Addresses)
(see also RXGWA1 - ASCII <-> EBCDIC)
The tables below can be used with the REXX TRANSLATE() instruction: /**********************************************************************/ /* EBCDIC To ASCII & ASCII To EBCDIC Translate Tables */ /**********************************************************************/ EBCDIC_OUT = XRANGE(000, 003) ||, /* NUL SOH STX ETX */ XRANGE(055, 055) ||, /* EOT */ XRANGE(045, 047) ||, /* ENQ ACK BEL */ XRANGE(022, 022) ||, /* BS */ XRANGE(005, 005) ||, /* HT */ XRANGE(037, 037) ||, /* LF */ XRANGE(011, 018) ||, /* VT FF CR SO SI DLE DC1 DC2 */ XRANGE(000, 000) ||, /* DC3 */ XRANGE(060, 061) ||, /* DC4 NAK */ XRANGE(050, 050) ||, /* SYN */ XRANGE(038, 038) ||, /* ETB */ XRANGE(024, 025) ||, /* CAN EM */ XRANGE(063, 063) ||, /* SUB */ XRANGE(039, 039) ||, /* ESC */ XRANGE(028, 031) ||, /* FS GS RS US */ XRANGE(090, 090) ||, /* ! */ XRANGE(127, 127) ||, /* " */ XRANGE(123, 123) ||, /* # */ XRANGE(091, 091) ||, /* $ */ XRANGE(108, 108) ||, /* % */ XRANGE(080, 080) ||, /* & */ XRANGE(125, 125) ||, /* ' */ XRANGE(077, 077) ||, /* ( */ XRANGE(093, 093) ||, /* ) */ XRANGE(092, 092) ||, /* * */ XRANGE(078, 078) ||, /* + */ XRANGE(107, 107) ||, /* , */ XRANGE(096, 096) ||, /* - */ XRANGE(075, 075) ||, /* . */ XRANGE(097, 097) ||, /* / */ XRANGE(240, 249) ||, /* 0 - 9 */ XRANGE(122, 122) ||, /* : */ XRANGE(094, 094) ||, /* ; */ XRANGE(076, 076) ||, /* < */ XRANGE(126, 126) ||, /* = */ XRANGE(110, 110) ||, /* > */ XRANGE(111, 111) ||, /* ? */ XRANGE(124, 124) ||, /* @ */ XRANGE(193, 201) ||, /* A - I */ XRANGE(209, 217) ||, /* J - R */ XRANGE(226, 233) ||, /* S - Z */ XRANGE(173, 173) ||, /* [ */ XRANGE(224, 224) ||, /* \ */ XRANGE(189, 189) ||, /* ] */ XRANGE(095, 095) ||, /* ^ */ XRANGE(109, 109) ||, /* _ */ XRANGE(121, 121) ||, /* ` */ XRANGE(129, 137) ||, /* a - i */ XRANGE(145, 153) ||, /* j - r */ XRANGE(162, 169) ||, /* s - z */ XRANGE(139, 139) ||, /* { */ XRANGE(106, 106) ||, /* | */ XRANGE(155, 155) ||, /* } */ XRANGE(161, 161) ||, /* ~ */ XRANGE(007, 007) /* DEL */ ASCII_OUT = XRANGE(000, 003) ||, /* NUL SOH STX ETX */ XRANGE(000, 000) ||, /* PF */ XRANGE(009, 009) ||, /* HT */ XRANGE(000, 000) ||, /* LC */ XRANGE(127, 127) ||, /* DEL */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* SMM */ XRANGE(011, 018) ||, /* VT CR SO SI DLE DC1 DC2 */ XRANGE(000, 000) ||, /* TM */ XRANGE(000, 000) ||, /* RES */ XRANGE(000, 000) ||, /* NL */ XRANGE(008, 008) ||, /* BS */ XRANGE(000, 000) ||, /* IL */ XRANGE(024, 025) ||, /* CAN EM */ XRANGE(000, 000) ||, /* CC */ XRANGE(000, 000) ||, /* CU1 */ XRANGE(028, 031) ||, /* FS GS RS US */ XRANGE(000, 000) ||, /* DS */ XRANGE(000, 000) ||, /* SOS */ XRANGE(028, 028) ||, /* FS */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* BYP */ XRANGE(010, 010) ||, /* LF */ XRANGE(023, 023) ||, /* ETB */ XRANGE(027, 027) ||, /* ESC */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* SM */ XRANGE(000, 000) ||, /* CU2 */ XRANGE(000, 000) ||, /* */ XRANGE(005, 007) ||, /* ENQ ACK BEL */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(022, 022) ||, /* SYN */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* PN */ XRANGE(000, 000) ||, /* RS */ XRANGE(000, 000) ||, /* UC */ XRANGE(004, 004) ||, /* EOT */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* CU3 */ XRANGE(020, 020) ||, /* DC4 */ XRANGE(021, 021) ||, /* NAK */ XRANGE(000, 000) ||, /* */ XRANGE(026, 026) ||, /* SUB */ XRANGE(032, 032) ||, /* space */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* cent sign */ XRANGE(046, 046) ||, /* . */ XRANGE(060, 060) ||, /* < */ XRANGE(040, 040) ||, /* ( */ XRANGE(043, 043) ||, /* + */ XRANGE(033, 033) ||, /* | */ XRANGE(038, 038) ||, /* & */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(033, 033) ||, /* ! */ XRANGE(036, 036) ||, /* $ */ XRANGE(042, 042) ||, /* * */ XRANGE(041, 041) ||, /* ) */ XRANGE(059, 059) ||, /* ; */ XRANGE(000, 000) ||, /* not symbol */ XRANGE(045, 045) ||, /* - */ XRANGE(047, 047) ||, /* / */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(124, 124) ||, /* | */ XRANGE(044, 044) ||, /* , */ XRANGE(037, 037) ||, /* % */ XRANGE(095, 095) ||, /* _ */ XRANGE(062, 062) ||, /* > */ XRANGE(063, 063) ||, /* ? */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(096, 096) ||, /* ` */ XRANGE(058, 058) ||, /* : */ XRANGE(035, 035) ||, /* # */ XRANGE(064, 064) ||, /* @ */ XRANGE(039, 039) ||, /* ' */ XRANGE(061, 061) ||, /* = */ XRANGE(034, 034) ||, /* " */ XRANGE(097, 105) ||, /* a - i */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(106, 114) ||, /* j - r */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(000, 000) ||, /* */ XRANGE(126, 126) ||, /* ~ */ XRANGE(115, 122) ||, /* s - z */ COPIES(192 - 170, D2C(0)) ||, XRANGE(123, 123) ||, /* { */ XRANGE(065, 073) ||, /* A - I */ COPIES(209 - 202, D2C(0)) ||, XRANGE(074, 082) ||, /* J - R */ COPIES(224 - 218, D2C(0)) ||, XRANGE(092, 092) ||, /* \ */ XRANGE(000, 000) ||, /* */ XRANGE(083, 090) ||, /* S - Z */ COPIES(240 - 234, D2C(0)) ||, XRANGE(048, 057) ||, /* J - R */ COPIES(256 - 250, D2C(0))