Exchange/SNA Manual

Send/Receive Program Example
Example Programs
104700 Tandem Computers Incorporated E–9
Page 9 [1] $RJE.EXCHAPPL.EXAPPL 1991-06-04 13:36:52
EXCHANGE/SNA PROGRAMMATIC EXAMPLE
371. 000000 0 0 !SEND opens the line server's card reader subdevice named #RD1
372. 000000 0 0 ! and sends the job (JCL and data) to the host using the reader
373. 000000 0 0 ! subdevice.
374. 000000 0 0
375. 000000 0 0 PROC send;
376. 000000 1 0
377. 000000 1 0 BEGIN
378. 000000 1 1
379. 000000 1 1 !WRITE^REC places a hard-coded card image in the buffer and
380. 000000 1 1 ! sends the buffer to the host.
381. 000000 1 1
382. 000000 1 1 SUBPROC write^rec (msg^num);
383. 000000 2 1
384. 000000 2 1 INT msg^num;
385. 000000 2 1
386. 000000 2 1 BEGIN ! --- write^rec --- !
387. 000000 2 2
388. 000000 2 2 INT length;
389. 000000 2 2
390. 000000 2 2 ibuffer ':=' [40*[" "]]; ! blank out the buffer !
391. 000010 2 2 CASE msg^num OF
392. 000012 2 2 BEGIN
393. 000012 2 3 1 -> sbuffer ':=' ["//SAMPLE JOB SAMPLE,MSGLEVEL=0,MSGCLASS=A,",
394. 000012 2 3 "SECLABEL=SYSLOW"] -> @sp;
395. 000023 2 3 2 -> sbuffer ':=' ["//STEP1 EXEC PGM=IEBGENER"] -> @sp;
396. 000035 2 3 3 -> sbuffer ':=' ["//SYSPRINT DD SYSOUT=A"] -> @sp;
397. 000047 2 3 4 -> sbuffer ':=' ["//SYSIN DD DUMMY"] -> @sp;
398. 000061 2 3 5 -> sbuffer ':=' ["//SYSUT2 DD SYSOUT=A,DCB=(RECFM=FB,LRECL=80",
399. 000062 2 3 ",BLKSIZE=160)"] -> @sp;
400. 000073 2 3 6 -> sbuffer ':=' ["//SYSUT1 DD DATA"] -> @sp;
401. 000105 2 3 7 -> sbuffer ':=' ["00 ABCDE 00001234"] -> @sp;
402. 000117 2 3 8 -> sbuffer ':=' ["01 ABCDE 00001234"] -> @sp;
403. 000131 2 3 9 -> sbuffer ':=' ["02 ABCDE 00001234"] -> @sp;
404. 000143 2 3 10 -> sbuffer ':=' ["03 ABCDE 00001234"] -> @sp;
405. 000155 2 3 11 -> sbuffer ':=' ["04 ABCDE 00001234"] -> @sp;
406. 000167 2 3 12 -> sbuffer ':=' ["05 ABCDE 00001234"] -> @sp;
407. 000201 2 3 13 -> sbuffer ':=' ["06 ABCDE 00001234"] -> @sp;
408. 000215 2 3 14 -> sbuffer ':=' ["07 ABCDE 00001234"] -> @sp;
409. 000227 2 3 15 -> sbuffer ':=' ["08 ABCDE 00001234"] -> @sp;
410. 000241 2 3 16 -> sbuffer ':=' ["09 ABCDE 00001234"] -> @sp;
411. 000253 2 3 17 -> sbuffer ':=' ["/*"] -> @sp;
412. 000265 2 3 18 -> sbuffer ':=' ["//"] -> @sp;
413. 000277 2 3 END;
414. 000340 2 2
415. 000340 2 2 length := @sp '-' @sbuffer;
416. 000344 2 2 CALL WRITE (server^fnum, ibuffer, length);
417. 000354 2 2 IF <> THEN CALL DEBUG;
418. 000356 2 2 END; ! --- write^rec --- !