/* REXX */ NUMERIC DIGITS 32 PARSE SOURCE . . . . zdsn . /* Executed as a Command. */ ADDRESS TSO "EXEC '"zdsn"(C2B)' '10000 2' EXEC" SAY /* Subroutine calls - all results displayed by C2B. */ CALL C2B /* No value. */ SAY RESULT CALL C2B abcd /* Not a number. */ SAY RESULT CALL C2B 10.58 /* Not a whole number. */ SAY RESULT CALL C2B 9223372036854775808 /* Greater than 8 bytes. */ SAY RESULT CALL C2B 10000 3 /* Not 2, 4 or 8 bytes. */ SAY RESULT CALL C2B 32768 2 /* Value > than 2 bytes. */ SAY RESULT x = MSG('OFF') ADDRESS TSO "DELETE REXXA.C2B" x = MSG('ON') SIGNAL ON ERROR ADDRESS TSO "ALLOCATE F(C2B) DA(REXXA.C2B) NEW CATALOG", "UNIT(SYSDA) SPACE(1 1) TRACK", "DSORG(PS) RECFM(F B) LRECL(100) BLKSIZE(0)" /* Subroutine call - trap output to write records. */ x = OUTTRAP('ztrap.','*','NOCONCAT') CALL C2B +10000 2 /* Halfword. */ QUEUE 'H' ztrap.2 x = OUTTRAP('ztrap.','*','NOCONCAT') CALL C2B +10000 4 /* Fullword. */ QUEUE 'F' ztrap.2 x = OUTTRAP('ztrap.','*','NOCONCAT') CALL C2B 32767 /* Halfword maximum. */ QUEUE 'H' ztrap.2 x = OUTTRAP('ztrap.','*','NOCONCAT') CALL C2B 2147483647 /* Fullword maximum. */ QUEUE 'F' ztrap.2 x = OUTTRAP('ztrap.','*','NOCONCAT') CALL C2B 9223372036854775807 /* Doubleword maximum. */ QUEUE 'D' ztrap.2 /* Function calls - only result returned from C2B. */ QUEUE 'H' C2B(-1 2) /* Halfword -1. */ QUEUE 'F' C2B(-1 4) /* Fullword -1. */ QUEUE 'H' C2B(-32768 2) /* Halfword minimum. */ QUEUE 'F' C2B(-2147483648 4) /* Fullword minimum. */ QUEUE 'D' C2B(-9223372036854775808) /* Doubleword minimum. */ QUEUE '' /* End of file. */ ADDRESS TSO 'EXECIO * DISKW C2B (OPEN FINIS)' SIGNAL OFF ERROR Error: ADDRESS TSO "FREE F(C2B)" EXIT 0