Can anyone help me here. I would like to try and call an external routine from Reginald. In COBOL, it is called with an area defined as follows
05 getct-version pic x(02) comp-x.
*> structure version. low-values
05 getct-reserved pic x(02).
*> low-values
05 getct-mvs-dsname pic x(44).
05 getct-mem-name pic x(08).
05 getct-pc-dsn pic x(260).
05 getct-recfm pic x(04).
78 vsam-keyed VALUE 'KS'.
78 vsam-entry-sequenced VALUE 'ES'.
78 vsam-relative-record VALUE 'RR'.
78 vsam-linear-sequenced VALUE 'LS'.
78 recfm-f VALUE 'F'.
78 recfm-fa VALUE 'FA'.
78 recfm-fb VALUE 'FB'.
78 recfm-fba VALUE 'FBA'.
78 recfm-fbm VALUE 'FBM'.
78 recfm-fbs VALUE 'FBS'.
78 recfm-fm VALUE 'FM'.
78 recfm-fs VALUE 'FS'.
78 recfm-lseq VALUE 'LSEQ'.
78 recfm-u VALUE 'U'.
78 recfm-v VALUE 'V'.
78 recfm-va VALUE 'VA'.
78 recfm-vb VALUE 'VB'.
78 recfm-vba VALUE 'VBA'.
78 recfm-vbm VALUE 'VBM'.
78 recfm-vbs VALUE 'VBS'.
78 recfm-vm VALUE 'VM'.
78 recfm-vs VALUE 'VS'.
88 getct-vsam-keyed-88 VALUE vsam-keyed.
88 getct-vsam-entry-sequenced-88
VALUE vsam-entry-sequenced.
88 getct-vsam-linear-sequenced-88
VALUE vsam-linear-sequenced.
88 getct-vsam-relative-record-88
VALUE vsam-relative-record.
88 getct-recfm-f-88 VALUE recfm-f.
88 getct-recfm-fa-88 VALUE recfm-fa.
88 getct-recfm-fb-88 VALUE recfm-fb.
88 getct-recfm-fba-88 VALUE recfm-fba.
88 getct-recfm-fbm-88 VALUE recfm-fbm.
88 getct-recfm-fbs-88 VALUE recfm-fbs.
88 getct-recfm-fm-88 VALUE recfm-fm.
88 getct-recfm-fs-88 VALUE recfm-fs.
88 getct-recfm-lseq-88 VALUE recfm-lseq.
88 getct-recfm-u-88 VALUE recfm-u.
88 getct-recfm-v-88 VALUE recfm-v.
88 getct-recfm-va-88 VALUE recfm-va.
88 getct-recfm-vb-88 VALUE recfm-vb.
88 getct-recfm-vba-88 VALUE recfm-vba.
88 getct-recfm-vbm-88 VALUE recfm-vbm.
88 getct-recfm-vbs-88 VALUE recfm-vbs.
88 getct-recfm-vm-88 VALUE recfm-vm.
88 getct-recfm-vs-88 VALUE recfm-vs.
05 getct-dsorg pic x(04).
78 dsorg-pdsm VALUE 'PDSM'.
78 dsorg-po VALUE 'PO '.
78 dsorg-ps VALUE 'PS '.
78 dsorg-vsam VALUE 'VSAM'.
78 dsorg-gdg VALUE 'GDG '.
78 dsorg-is VALUE 'IS '.
88 getct-dsorg-pdsm-88 VALUE dsorg-pdsm.
88 getct-dsorg-po-88 VALUE dsorg-po.
88 getct-dsorg-ps-88 VALUE dsorg-ps.
88 getct-dsorg-vsam-88 VALUE 'VSAM'.
88 getct-dsorg-gdg-88 VALUE dsorg-gdg.
88 getct-dsorg-is-88 VALUE dsorg-is.
05 getct-charset pic x(01).
78 getct-charset-ebcdic VALUE 'E'.
78 getct-charset-ascii VALUE 'A'.
78 getct-charset-unknown VALUE '?'.
88 getct-charset-ebcdic-88
VALUE getct-charset-ebcdic.
88 getct-charset-ascii-88
VALUE getct-charset-ascii.
88 getct-charset-unknown-88
VALUE getct-charset-unknown.
05 getct-filler pic x(23).
*> align ON four byte boundary.
05 getct-lrecl pic x(02) comp-x.
05 getct-lrecl-max pic x(02) comp-x.
05 getct-lrecl-min pic x(02) comp-x.
This "translates" into the following (I believe)GETCT-VERSION is a 2-byte numeric field. From the manual "A COMPUTATIONAL-X item is always stored using the same storage scheme as BINARY items, that is with the high-order bytes stored at the lowest addresses and successively lower-order bytes at successively higher addresses GETCT-RESERVED - two bytes (character) GETCT-MVS-DSNAME - 44 byte argument in containing a mainframe dataset name GETCT-MEM-NAME - 8 bytes (character). Not sure that this is actually used, either as input or output GETCT-PC-DSN - 260 bytes (character). Returned from program and contains "PC" name corresponding to GETCT-MVS-DSNAME mainframe "name" GETCT-RECFM - 4 bytes (character) returned from program GETCT-DSORG - 4 bytes (character) returned from program GETCT-CHARSET - 1 byte (character) returned from program GETCT-FILLER - 23 bytes (character). Not used by program GETCT-LRECL is a 2-byte numeric field (same type as GETCT-VERSION) GETCT-LRECL-MAX is a 2-byte numeric field (same type as GETCT-VERSION) GETCT-LRECL-MIN is a 2-byte numeric field (same type as GETCT-VERSION)
|