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 --- !










