<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">Article 12310 of comp.lang.perl:
Path: feenix.metronet.com!news.ecn.bgu.edu!usenet.ins.cwru.edu!howland.reston.ans.net!cs.utexas.edu!uunet!meaddata!petew
From: petew@meaddata.com (Pete Williams)
Newsgroups: comp.lang.perl
Subject: ASCII&lt;=&gt;EBCDIC problem solved -- here's my solution!
Date: 5 Apr 1994 23:53:05 GMT
Organization: Mead Data Central, Dayton OH
Lines: 112
Message-ID: &lt;2nstl1$brl@meaddata.meaddata.com&gt;
NNTP-Posting-Host: fracture.meaddata.com

Hi Fellow Perl[er|ite|ette]s:

First of all, thanks to everyone who kindly responded to my
requests for help with ASCII/EBCDIC translations.  While I was
a bit surprised that there seemed to be no library modules to
do these conversions, I (with a little help from my friends)
now offer you just such a beast...

So much of our work revolves around IBM-style character conversions,
that I found it hard to live without this little item.  (I also hate
having to kick off "dd" as a subprocess!).

This is based on the ASCII&lt;-&gt;EBCDIC/IBM tables from the GNU dd 
source, so data that converts properly with "dd" should perform
similarly with this.  I've tested out the EBCDIC&lt;-&gt;ASCII routine
quite a bit and it seems to work as advertised.  The ASCII&lt;-&gt;IBM
stuff hasn't been tested at all (as I have no data to do so),
so CAVEAT WHOMEVER.

Please direct any complaints, bugs (and especially fixes!) to me
and I will handle reposting or whatever.

Enjoy, all you people living in the EBCDIC past (like me :-)


Pete

_/_/_/_/_/_/   _/_/_/_/_/_/_/_/_/_/_/_/     _/      "'Tis an ill wind that
   _/      _/ _/         _/    _/           _/       blows no minds"
  _/_/_/_/   _/_/_/     _/    _/_/_/_/_/_/_/_/_/   --Malaclypse the Younger
 _/         _/         _/    _/            _/
_/         _/_/_/_/   _/    _/_/_/_/     _/        == petew@meaddata.com ==


-------%x-------------------CUT-HERE-------------------%x-------


begin 750 ascebc.pl
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(PHC($%30T5"0RY03 HC
M"B,@57-A9V4Z"B,@("!R97%U:7)E("=A&lt;V-E8F,N&lt;&amp;PG.PHC(" @)&amp;%S8VEI
M+7-T&lt;FEN9R ]("9A92=%=&amp;]!*"1E8F-D:6,M&lt;W1R:6YG*3L*(R @("1E8F-D
M:6,M&lt;W1R:6YG(#T@)F%E)T%T;T4H)&amp;%S8VEI+7-T&lt;FEN9RD["B,@(" D87-C
M:6DM&lt;W1R:6YG(#T@)F%E)TET;T$H)&amp;EB;2US=')I;F&lt;I.PHC(" @)&amp;EB;2US
M=')I;F&lt;@/2 F864G071O22@D87-C:6DM&lt;W1R:6YG*3L*(PHC(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C"@IP86-K86=E(&amp;%S8V5B8SL*"B,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,*(R F171O00HC"B,@14)#1$E#
M("T^($%30TE)($-O;G9E&lt;G1E&lt;@HC(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C"@IS=6(@171O02!["@EL;V-A;"@D97-T&lt;FEN9RD@/2! 7SL*"21E
M&lt;W1R:6YG(#U^('1R+UQ&lt;,"U&lt;,UPV-UPU-2U&lt;-3=&lt;,C9&lt;-5PT-5PQ,RU&lt;,C-&lt;
M-S1&lt;-S5&lt;-C)&lt;-#9&lt;,S!&lt;,S%&lt;-S=&lt;-#=&lt;,S0M7#,W7#$P,%PQ,3=&lt;,3&lt;W7#$W
M,UPQ,S-&lt;,34T7#$R,%PQ-S5&lt;,3$U7#$S-5PQ,S1&lt;,3$V7#$U,UPQ-#!&lt;,3$S
M7#$T,5PS-C M7#,W,5PQ-S)&lt;,3,V7#$Q-%PQ-S9&lt;,34V7#$U-UPQ-S1&lt;,S Q
M+5PS,3%&lt;,S(Q+5PS,S%&lt;,S0R+5PS-3%&lt;,3$R7#,T,%PQ,S)&lt;,3,W7#$U-5PQ
M-S%&lt;,C Q+5PR,3%&lt;,C(Q+5PR,S%&lt;,C0R+5PR-3%&lt;,S P7#$U,EPS,C!&lt;,C0Q
M7#=&lt;-# M7#0T7#(U7#9&lt;,C=&lt;-3 M7#4T7#$Q7#$R7#,S7#8P7#8Q7#,R7#8S
M+5PV-EPQ,%PW,"U&lt;-S-&lt;-%PR-%PW-EPS-#%&lt;,3 Q+5PQ,3%&lt;,3(Q+5PQ,S%&lt;
M,30R+5PQ-3%&lt;,38P+5PQ-S!&lt;,C P7#(Q,BU&lt;,C(P7#(S,BU&lt;,C0P7#(U,BU&lt;
M,C&lt;W7#,Q,BU&lt;,S$W7#,S,BU&lt;,S,W7#,U,BU&lt;,S4W7#,W,BU&lt;,S&lt;W+UPP+5PS
M-S&lt;O.PH)&lt;F5T=7)N("1E&lt;W1R:6YG.PI]"@HC(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C"B,@)DET;T$*(PHC($E"32 M/B!!4T-)22!#;VYV97)T
M97(*(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(PH*&lt;W5B($ET;T$@
M&gt;PH);&amp;]C86PH)&amp;ES=')I;F&lt;I(#T@0%\["@DD87-T&lt;FEN9R ]?B!T&lt;B]&lt;7# M
M7#-&lt;-C=&lt;-34M7#4W7#(V7#5&lt;-#5&lt;,3,M7#(S7#&lt;T7#&lt;U7#8R7#0V7#,P7#,Q
M7#&lt;W7#0W7#,T+5PS-UPQ,#!&lt;,3,R7#$W-UPQ-S-&lt;,3,S7#$U-%PQ,C!&lt;,3&lt;U
M7#$Q-5PQ,S5&lt;,3,T7#$Q-EPQ-3-&lt;,30P7#$Q,UPQ-#%&lt;,S8P+5PS-S%&lt;,3&lt;R
M7#$S-EPQ,31&lt;,3&lt;V7#$U-EPQ-3=&lt;,3&lt;T7#,P,2U&lt;,S$Q7#,R,2U&lt;,S,Q7#,T
M,BU&lt;,S4Q7#(U-5PS-#!&lt;,C&lt;U7#$S-UPQ-35&lt;,3&lt;Q7#(P,2U&lt;,C$Q7#(R,2U&lt;
M,C,Q7#(T,BU&lt;,C4Q7#,P,%PQ,3=&lt;,S(P7#(T,5PW7#0P+5PT-%PR-5PV7#(W
M7#4P+5PU-%PQ,5PQ,EPS,UPV,%PV,5PS,EPV,RU&lt;-C9&lt;,3!&lt;-S M7#&lt;S7#1&lt;
M,C1&lt;-S9&lt;,S0Q7#$P,2U&lt;,3$Q7#$R,2U&lt;,3,Q7#$T,BU&lt;,34Q7#$V,"U&lt;,3&lt;P
M7#(P,%PR,3(M7#(R,%PR,S(M7#(T,%PR-3(M7#(W-UPS,3(M7#,Q-UPS,S(M
M7#,S-UPS-3(M7#,U-UPS-S(M7#,W-R]&lt;,"U&lt;,S&lt;W+SL*"7)E='5R;B D:7-T
M&lt;FEN9SL*?0H*(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(PHC("9!
M=&amp;]%"B,*(R!!4T-)22 M/B!%0D-$24,@0V]N=F5R=&amp;5R"B,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,*"G-U8B!!=&amp;]%('L*"6QO8V%L*"1A&lt;W1R
M:6YG*2 ]($!?.PH))&amp;%S=')I;F&lt;@/7X@='(O7# M7#,W-R]&lt;7# M7#-&lt;-C=&lt;
M-34M7#4W7#(V7#5&lt;-#5&lt;,3,M7#(S7#&lt;T7#&lt;U7#8R7#0V7#,P7#,Q7#&lt;W7#0W
M7#,T+5PS-UPQ,#!&lt;,3$W7#$W-UPQ-S-&lt;,3,S7#$U-%PQ,C!&lt;,3&lt;U7#$Q-5PQ
M,S5&lt;,3,T7#$Q-EPQ-3-&lt;,30P7#$Q,UPQ-#%&lt;,S8P+5PS-S%&lt;,3&lt;R7#$S-EPQ
M,31&lt;,3&lt;V7#$U-EPQ-3=&lt;,3&lt;T7#,P,2U&lt;,S$Q7#,R,2U&lt;,S,Q7#,T,BU&lt;,S4Q
M7#$Q,EPS-#!&lt;,3,R7#$S-UPQ-35&lt;,3&lt;Q7#(P,2U&lt;,C$Q7#(R,2U&lt;,C,Q7#(T
M,BU&lt;,C4Q7#,P,%PQ-3)&lt;,S(P7#(T,5PW7#0P+5PT-%PR-5PV7#(W7#4P+5PU
M-%PQ,5PQ,EPS,UPV,%PV,5PS,EPV,RU&lt;-C9&lt;,3!&lt;-S M7#&lt;S7#1&lt;,C1&lt;-S9&lt;
M,S0Q7#$P,2U&lt;,3$Q7#$R,2U&lt;,3,Q7#$T,BU&lt;,34Q7#$V,"U&lt;,3&lt;P7#(P,%PR
M,3(M7#(R,%PR,S(M7#(T,%PR-3(M7#(W-UPS,3(M7#,Q-UPS,S(M7#,S-UPS
M-3(M7#,U-UPS-S(M7#,W-R\["@ER971U&lt;FX@)&amp;%S=')I;F&lt;["GT*"B,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,*(R F071O20HC"B,@05-#24D@
M+3X@24)-($-O;G9E&lt;G1E&lt;@HC(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C"@IS=6(@071O22!["@EL;V-A;"@D87-T&lt;FEN9RD@/2! 7SL*"21A&lt;W1R
M:6YG(#U^('1R+UPP+5PS-S&lt;O7%PP+5PS7#8W7#4U+5PU-UPR-EPU7#0U7#$S
M+5PR,UPW-%PW-5PV,EPT-EPS,%PS,5PW-UPT-UPS-"U&lt;,S=&lt;,3 P7#$S,EPQ
M-S=&lt;,3&lt;S7#$S,UPQ-31&lt;,3(P7#$W-5PQ,35&lt;,3,U7#$S-%PQ,39&lt;,34S7#$T
M,%PQ,3-&lt;,30Q7#,V,"U&lt;,S&lt;Q7#$W,EPQ,S9&lt;,3$T7#$W-EPQ-39&lt;,34W7#$W
M-%PS,#$M7#,Q,5PS,C$M7#,S,5PS-#(M7#,U,5PR-35&lt;,S0P7#(W-5PQ,S=&lt;
M,34U7#$W,5PR,#$M7#(Q,5PR,C$M7#(S,5PR-#(M7#(U,5PS,#!&lt;,3$W7#,R
M,%PR-#%&lt;-UPT,"U&lt;-#1&lt;,C5&lt;-EPR-UPU,"U&lt;-31&lt;,3%&lt;,3)&lt;,S-&lt;-C!&lt;-C%&lt;
M,S)&lt;-C,M7#8V7#$P7#&lt;P+5PW,UPT7#(T7#&lt;V7#,T,5PQ,#$M7#$Q,5PQ,C$M
M7#$S,5PQ-#(M7#$U,5PQ-C M7#$W,%PR,#!&lt;,C$R+5PR,C!&lt;,C,R+5PR-#!&lt;
M,C4R+5PR-S=&lt;,S$R+5PS,3=&lt;,S,R+5PS,S=&lt;,S4R+5PS-3=&lt;,S&lt;R+5PS-S&lt;O
:.PH)&lt;F5T=7)N("1A&lt;W1R:6YG.PI]"@HQ.PI&lt;
 
end


</pre></body></html>