Exchange/SNA Manual
Send/Receive Program Example
Example Programs
104700 Tandem Computers Incorporated E–7
Page 7 [1] $RJE.EXCHAPPL.EXAPPL 1991-06-04 13:36:52
EXCHANGE/SNA PROGRAMMATIC EXAMPLE
267. 000242 1 4 CALL NUMOUT (sbuffer[write^count-12], records, 10, 4);
268. 000252 1 4 CALL WRITE (term^fnum, ibuffer, write^count);
269. 000262 1 4 CALL STOP;
270. 000267 1 4 END
271. 000267 1 3 ELSE
272. 000270 1 3 BEGIN
273. 000270 1 4 sbuffer ':=' ["LINE SERVER ERROR--ERROR: "] -> @sp;
274. 000301 1 4 write^count := @sp '-' @sbuffer;
275. 000305 1 4 CALL NUMOUT (sbuffer[write^count-3], error, 10, 3);
276. 000315 1 4 CALL WRITE (term^fnum, ibuffer, write^count);
277. 000325 1 4 CALL STOP;
278. 000332 1 4 END;
279. 000332 1 3 END
280. 000332 1 2 ELSE ! no error !
281. 000333 1 2 BEGIN
282. 000333 1 3
283. 000333 1 3 ! load print buffer !
284. 000333 1 3 ibuffer ':=' server^buffer for count^read/2;
285. 000341 1 3 ! set single or no space control !
286. 000341 1 3 IF sbuffer[1] <> "/"
287. 000341 1 3 THEN
288. 000345 1 3 BEGIN
289. 000345 1 4 IF space = on
290. 000345 1 4 THEN
291. 000350 1 4 BEGIN
292. 000350 1 5 CALL SETMODE (out^fnum, set^line^spacing, no^space);
293. 000357 1 5 space := off;
294. 000361 1 5 END;
295. 000361 1 4 END
296. 000361 1 3 ELSE
297. 000362 1 3 BEGIN
298. 000362 1 4 IF space = off
299. 000362 1 4 THEN
300. 000364 1 4 BEGIN
301. 000364 1 5 CALL SETMODE (out^fnum, set^line^spacing, single^space);
302. 000373 1 5 space := on;
303. 000375 1 5 END;
304. 000375 1 4 END;
305. 000375 1 3
306. 000375 1 3 ! check for nonprintable characters !
307. 000375 1 3 FOR i := 2 TO (count^read - 1)
308. 000375 1 3 DO
309. 000377 1 3 IF sbuffer[i] '>' "~"
310. 000377 1 3 THEN
311. 000404 1 3 sbuffer[i] ':=' nonprintable^replacement;
312. 000424 1 3
313. 000424 1 3 ! print the record--with ESC code !
314. 000424 1 3 records := records + 1;
315. 000426 1 3 CALL WRITE (out^fnum, ibuffer[1], count^read - 2);
316. 000440 1 3 IF <>
317. 000440 1 3 THEN
318. 000441 1 3 BEGIN
319. 000441 1 4 CALL FILEINFO (out^fnum, error);
320. 000452 1 4 sbuffer ':=' ["CAN'T WRITE TO PRINTER--ERROR: "] -> @sp;
321. 000463 1 4 write^count := @sp '-' @sbuffer;
322. 000467 1 4 CALL NUMOUT (sbuffer[write^count-3], error, 10, 3);
323. 000477 1 4 CALL WRITE (term^fnum, ibuffer, write^count);