/* REXX */ PARSE SOURCE . . . . zdsn . /* Subroutine calls - all results displayed by PD2C. */ CALL PD2C /* No value. */ SAY RESULT CALL PD2C 'F23C'X /* Invalid digits. */ SAY RESULT CALL PD2C '123A'X /* Invalid sign. */ SAY RESULT CALL PD2C '123F'X a /* Nonnumeric length. */ SAY RESULT CALL PD2C '123D'X 3.2 /* Length not a whole number. */ SAY RESULT CALL PD2C '12345C'X 5 /* Value of number > length. */ SAY RESULT CALL PD2C '12345D'X /* 3-byte negative to 6 bytes. */ SAY RESULT CALL PD2C '12345D'X 6 /* 3-byte negative to 6 bytes. */ SAY RESULT CALL PD2C '123C'X 6 /* 2-byte positive to 6 bytes. */ SAY RESULT CALL PD2C '1F'X /* 1-byte unsigned to 1 byte. */ SAY RESULT CALL PD2C '1F'X 4 /* 1-byte unsigned to 4-bytes. */ SAY RESULT /* Function calls - only result returned from B2C. */ SAY PD2C() /* No parameter. */ SAY PD2C('01234567890D'X) /* 6-byte negative to 12-bytes. */ /* File created by C2PDTEST. */ SIGNAL ON ERROR ADDRESS TSO "ALLOCATE F(PD2C) DA(REXXA.C2PD) SHR" ADDRESS TSO "EXECIO 1 DISKRU PD2C (FIFO OPEN)" DO WHILE RC = 0 PARSE PULL record /* Executed as Command. */ z = OUTTRAP('ztrap.','*','NOCONCAT') ADDRESS TSO "EXEC '"zdsn"(PD2C)' '"LEFT(record,6)"' EXEC" record = OVERLAY(ztrap.1,record,8,LENGTH(ztrap.1),' ') record =, OVERLAY(ztrap.2,record,LENGTH(ztrap.1) + 9,LENGTH(ztrap.2),' ') PUSH record ADDRESS TSO 'EXECIO 1 DISKW PD2C' ADDRESS TSO "EXECIO 1 DISKRU PD2C (FIFO)" END ADDRESS TSO 'EXECIO 0 DISKR PD2C (FINIS)' SIGNAL OFF ERROR Error: ADDRESS TSO "FREE F(PD2C)" EXIT 0