Exchange/SNA Manual

Send/Receive Program Example
Example Programs
E–10 104700 Tandem Computers Incorporated
Page 10 [1] $RJE.EXCHAPPL.EXAPPL 1991-06-04 13:36:52
EXCHANGE/SNA PROGRAMMATIC EXAMPLE
420. 000763 1 1 ! open card reader subdevice!
421. 000763 1 1 server^file^name[4] ':=' "#RD1 ";
422. 000774 1 1 CALL OPEN (server^file^name, server^fnum, write^only^waited^io);
423. 001005 1 1 IF <>
424. 001005 1 1 THEN
425. 001006 1 1 BEGIN
426. 001006 1 2 CALL FILEINFO (server^fnum, error);
427. 001017 1 2 sbuffer ':=' ["CAN'T OPEN READER SUBDEVICE -- ERROR: "] -> @sp;
428. 001030 1 2 write^count := @sp '-' @sbuffer;
429. 001034 1 2 CALL NUMOUT (sbuffer[write^count-3], error, 10, 3);
430. 001044 1 2 CALL WRITE (term^fnum, ibuffer, write^count);
431. 001054 1 2 CALL STOP
432. 001054 1 2 END;
433. 001061 1 1
434. 001061 1 1 ! write the start message !
435. 001061 1 1 sbuffer ':=' ["BEGIN SEND TEST"] -> @sp;
436. 001072 1 1 write^count := @sp '-' @sbuffer;
437. 001076 1 1 CALL WRITE (term^fnum, ibuffer, write^count);
438. 001106 1 1 IF <> THEN CALL DEBUG;
439. 001110 1 1
440. 001110 1 1 ! set SEND parameters !
441. 001110 1 1 CALL SETMODE (server^fnum, set^send^params, comp^all^tr^on);
442. 001117 1 1 IF <>
443. 001117 1 1 THEN
444. 001120 1 1 BEGIN
445. 001120 1 2 CALL FILEINFO (server^fnum, error);
446. 001131 1 2 sbuffer ':=' ["SET SEND PARAMS FAILED--ERROR: "] ->@sp;
447. 001142 1 2 write^count := @sp '-' @sbuffer;
448. 001146 1 2 CALL NUMOUT (sbuffer[write^count-3], error, 10, 3);
449. 001156 1 2 CALL WRITE (term^fnum, ibuffer, write^count);
450. 001166 1 2 CALL STOP;
451. 001173 1 2 END;
452. 001173 1 1
453. 001173 1 1 ! send records to the host !
454. 001173 1 1 FOR records := 1 TO 18 DO
455. 001175 1 1 CALL write^rec (records);
456. 001205 1 1
457. 001205 1 1 ! write an eof !
458. 001205 1 1 CALL CONTROL (server^fnum, send^eof);
459. 001214 1 1 IF <> THEN CALL DEBUG;
460. 001216 1 1
461. 001216 1 1 ! close the line server !
462. 001216 1 1 CALL CLOSE (server^fnum);
463. 001223 1 1 IF <> THEN CALL DEBUG;
464. 001225 1 1
465. 001225 1 1 sbuffer ':=' ["SEND TEST COMPLETED OK"] -> @sp;
466. 001236 1 1 write^count := @sp '-' @sbuffer;
467. 001242 1 1 CALL WRITE (term^fnum, ibuffer, write^count);
468. 001252 1 1 IF <> THEN CALL DEBUG;
469. 001254 1 1 RETURN;
470. 001255 1 1 END;