00001 00002 c 00003 c Copyright (c) 1986,1987,1988,1989,1990,1991,1992,1993, 00004 c by Steve McMillan, Drexel University, Philadelphia, PA. 00005 c 00006 c All rights reserved. 00007 c 00008 c Redistribution and use in source and binary forms are permitted 00009 c provided that the above copyright notice and this paragraph are 00010 c duplicated in all such forms and that any documentation, 00011 c advertising materials, and other materials related to such 00012 c distribution and use acknowledge that the software was developed 00013 c by the author named above. 00014 c 00015 c THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 00016 c IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 00017 c WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00018 c 00019 00020 subroutine pushstr 00021 save 00022 c 00023 c Push current strpos settings on a stack. Don't alter settings. 00024 c 00025 dimension stack(30) 00026 common/str posn/i pos set,frx,fry 00027 c 00028 data ipoint/0/ 00029 c 00030 if(ipoint.gt.27)stop'str stack overflow.' 00031 ipoint=ipoint+1 00032 stack(ipoint)=i pos set 00033 ipoint=ipoint+1 00034 stack(ipoint)=frx 00035 ipoint=ipoint+1 00036 stack(ipoint)=fry 00037 return 00038 c 00039 entry popstr 00040 c 00041 c pop last strpos settings from the stack. 00042 c 00043 if(ipoint.lt.2)stop'str stack underflow.' 00044 fry=stack(ipoint) 00045 ipoint=ipoint-1 00046 frx=stack(ipoint) 00047 ipoint=ipoint-1 00048 i pos set=stack(ipoint) 00049 ipoint=ipoint-1 00050 c 00051 end