/* REXX */ PARSE SOURCE . . . . zdsn . /* Subroutine calls - all results displayed by B2C. */ CALL B2C /* No value. */ SAY RESULT CALL B2C '002710'X /* Not 2, 4 or 8 bytes. */ SAY RESULT CALL B2C '000000000000002710'X /* Greater than 8 bytes. */ SAY RESULT CALL B2C '1234'X a /* Nonnumeric length. */ SAY RESULT CALL B2C '1234'X 3.2 /* Length not a whole number. */ SAY RESULT CALL B2C '1234'X 3 /* Value of number > length. */ SAY RESULT CALL B2C '2710'X /* Halfword. */ SAY RESULT CALL B2C '00002710'X /* Fullword. */ SAY RESULT CALL B2C '7FFF'X /* Halfword maximum. */ SAY RESULT CALL B2C '7FFFFFFF'X /* Fullword maximum. */ SAY RESULT CALL B2C '7FFFFFFFFFFFFFFF'X /* Doubleword maximum. */ SAY RESULT /* Function calls - only result returned from B2C. */ SAY B2C() /* No value. */ SAY B2C('FFFF'X) /* Halfword -1. */ SAY B2C('FFFFFFFF'X) /* Fullword -1. */ SAY B2C('8000'X) /* Halfword minimum. */ SAY B2C('80000000'X) /* Fullword minimum. */ SAY B2C('8000000000000000'X) /* Doubleword minimum. */ SAY /* File created by C2BTEST. */ SIGNAL ON ERROR ADDRESS TSO "ALLOCATE F(B2C) DA(REXXA.C2B) SHR" ADDRESS TSO "EXECIO * DISKR B2C (STEM record. OPEN FINIS)" DO x = 1 TO record.0 bin_length = LEFT(record.x,1) SELECT WHEN bin_length = 'H' THEN bin_num = SUBSTR(record.x,3,2) WHEN bin_length = 'F' THEN bin_num = SUBSTR(record.x,3,4) WHEN bin_length = 'D' THEN bin_num = SUBSTR(record.x,3,8) END /* SELECT */ /* Executed as Command. */ z = OUTTRAP('ztrap.','*','NOCONCAT') ADDRESS TSO "EXEC '"zdsn"(B2C)' '"bin_num" 20' EXEC" record.x = OVERLAY(ztrap.1,record.x,12,LENGTH(ztrap.1),' ') record.x =, OVERLAY(ztrap.2,record.x,LENGTH(ztrap.1) + 13,LENGTH(ztrap.2),' ') END x ADDRESS TSO 'EXECIO' record.0 'DISKW B2C (STEM record. OPEN FINIS)' SIGNAL OFF ERROR Error: ADDRESS TSO "FREE F(B2C)" EXIT 0