Convert-IBM390
view release on metacpan or search on metacpan
0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, 0x20, 0x21,
0x22, 0x23, 0x24, 0x25, 0x06, 0x17, 0x28, 0x29, 0x2a, 0x2b,
0x2c, 0x09, 0x0a, 0x1b, 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35,
0x36, 0x08, 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff,
0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, 0xbb, 0xb4,
0x9a, 0x8a, 0xb0, 0xca, 0xaf, 0xbc, 0x90, 0x8f, 0xea, 0xfa,
0xbe, 0xa0, 0xb6, 0xb3, 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8,
0xb9, 0xab, 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68,
0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, 0xac, 0x69,
0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, 0x80, 0xfd, 0xfe, 0xfb,
0xfc, 0xba, 0xae, 0x59, 0x44, 0x45, 0x42, 0x46, 0x43, 0x47,
0x9c, 0x48, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, 0x70, 0xdd,
0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf };
static unsigned char e2a_table[256] = {
0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f, 0x97, 0x8d,
0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13,
0x9d, 0x0a, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d,
0x1e, 0x1f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1b,
0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, 0x90, 0x91,
0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9a, 0x9b,
0x14, 0x15, 0x9e, 0x1a, 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1,
0xe3, 0xe5, 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c,
0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, 0xec, 0xdf,
0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e, 0x2d, 0x2f, 0xc2, 0xc4,
0xc0, 0xc1, 0xc3, 0xc5, 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f,
0x3e, 0x3f, 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf,
0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, 0xd8, 0x61,
0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xab, 0xbb,
0xf0, 0xfd, 0xfe, 0xb1, 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e,
0x6f, 0x70, 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4,
0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a,
0xa1, 0xbf, 0xd0, 0x5b, 0xde, 0xae, 0xac, 0xa3, 0xa5, 0xb7,
0xa9, 0xa7, 0xb6, 0xbc, 0xbd, 0xbe, 0xdd, 0xa8, 0xaf, 0x5d,
0xb4, 0xd7, 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, 0x7d, 0x4a,
0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0xb9, 0xfb,
0xfc, 0xf9, 0xfa, 0xff, 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56,
0x57, 0x58, 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f };
static unsigned char e2ap_table[256] = {
" "
" .<(+|& !$*); -/ ,%_>? `:#@'=\""
" abcdefghi jklmnopqr ~stuvwxyz [ ] "
"{ABCDEFGHI }JKLMNOPQR \\ STUVWXYZ 0123456789 "};
/*---- End of tables ----*/
#ifdef OLD_INTERNAL
#define UNDEF_PTR &sv_undef
#else
#define UNDEF_PTR &PL_sv_undef
#endif
/* 36KB may seem small, but on MVS most records are 32KB or less. */
#define OUTSTRING_MEM 36864
/* Macro: catenate a string to the end of an existing string
* and move the pointer up. */
#define memcat(target,offset,source,len) \
memcpy((target+offset), source, len); \
offset += len;
#ifndef min
#define min(x,y) (((x) < (y)) ? (x) : (y))
#endif
static int
not_here(char *s)
{
croak("%s not implemented on this architecture", s);
return -1;
}
static double
constant(char *name, int len, int arg)
{
errno = EINVAL;
return 0;
}
MODULE = Convert::IBM390 PACKAGE = Convert::IBM390
void
asc2eb(instring_sv)
SV * instring_sv
PROTOTYPE: $
PREINIT:
STRLEN ilength;
char * instring;
char * outstring_wk;
/* To avoid allocating small amounts of storage: */
char shorty[SHORTY_SIZE];
PPCODE:
instring = SvPV(instring_sv, ilength);
#ifdef DEBUG390
fprintf(stderr, "*D* asc2eb: beginning; length %d\n", ilength);
#endif
if (ilength <= SHORTY_SIZE) {
CF_fcs_xlate(shorty, instring, ilength, a2e_table);
PUSHs(sv_2mortal(newSVpvn(shorty, ilength)));
} else {
New(0, outstring_wk, ilength, char);
CF_fcs_xlate(outstring_wk, instring, ilength, a2e_table);
PUSHs(sv_2mortal(newSVpvn(outstring_wk, ilength)));
Safefree(outstring_wk);
}
#ifdef DEBUG390
fprintf(stderr, "*D* asc2eb: returning\n");
#endif
void
eb2asc(instring_sv)
SV * instring_sv
PROTOTYPE: $
( run in 2.775 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )