The following sample job builds a mixed CBL85 and NS C TPR with a Cobol mainline. It is a simple command that displays its command line in octal and ASCII.
The TPR is linked for use with data retention. The $ASCII cards are needed to get the correct case on the symrefs and symdefs, and also to allow special characters that C uses. Note that the CBL85 activity uses the "SUB", option because the actual domain entry is C$ENTRY.
$ ident * $ select &system/profile.prod/nsc $ select &system/profile.prod/tp8 $ select &system/profile.prod/vmps $ cbl85 sub,lstin,stats,clist,asciiprt $ prmfl tp,r/c,r,&it008p/exec/c85clib $ prmfl sr,r/c,r,&vs008p/data/blaistatcopy $ ascii identification division. program-id. _tpr. environment division. configuration section. source-computer. level-66-ascii. object-computer. level-66-ascii. data division. working-storage section. copy status_return_type in sr replacing status_return_type by tp-stat. copy tp-receive-message-data in tp. 01 cmd-line pic x(80). 77 entry-count comp-6 value 0. procedure division. begin. add 1 to entry-count. move 80 to tp-rib-text-length. call "_TP_RECEIVE_MESSAGE" using tp-stat, tp-receive-input-block, cmd-line, tp-receive-output-block. call "dispnum" using entry-count. call "cdump" using tp-rob-text-length, cmd-line. wrap-up. exit program. $ enx $ file o*,o1s,4r $ run rufile=&cv00rp/nsc_ru $ data cz nsc fc*i* output=fc*o* form=om $ file o*,o2s,1r $ ascii #include <stdio.h> void cdump(int *len, char *data) { printf("Dumping %d bytes\n", *len); _dumpb(stdout, data, *len, "oa*"); } void dispnum(int *p) { printf("\ndispnum; %d\n", *p); } $ enx $ lked $ limits 20 $ file o1,o1r $ file o2,o2r $ prmfl v*,w,r,/run-unit $ ascii Generate_Run_Unit -Name VOUCH -Entry C$ENTRY Create_Reference -symref C$PROGRAM C$TPSUB_RET Library -Language c tp8 cbl85 create_heaps -data 128k -desc 1k report -map Detail_level_2 include -fc o1 o2 $ enx $ endjob
Copyright © 1996, Thinkage Ltd.