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 pixel(iin,jin,ipenin) 00021 save 00022 c 00023 c Move or draw to a specified pixel. Currently implemented 00024 c for the Tektronix options (or equivalent) only. 00025 c 00026 character*80 device 00027 common /plot device/ device,aspect,idev 00028 common /framesize/ nxpix,nx0,xfac,nypix,ny0,yfac 00029 common /dev init/ init 00030 common /dev details/ itek,ivers 00031 logical on 00032 character*1 ctrl(0:31), 00033 & null,ctrla,tab,lf,ff,cr,ctrlx,ctrlz,esc,gs,del 00034 common /ctrlch/ ctrl, 00035 & null,ctrla,tab,lf,ff,cr,ctrlx,ctrlz,esc,gs,del 00036 c 00037 character*1 vec(0:5),up(3),down(3) 00038 data up/' ','L','F'/down/' ','L','G'/ 00039 c 00040 if(itek.eq.0)return 00041 up(1)=esc 00042 down(1)=esc 00043 vec(0)=gs 00044 c 00045 if(init.eq.0)then 00046 init=-1 00047 call mcinit 00048 call devon 00049 call clear 00050 end if 00051 if(.not.on())call devon 00052 i=iin 00053 j=jin 00054 ipen=abs(ipenin) 00055 if(ipen.ne.2)ipen=3 00056 if(nxpix.gt.1023)then 00057 i4=i/4 00058 ii=i-4*i4 00059 j4=j/4 00060 jj=j-4*j4 00061 vec(2)=char(96+ii+4*jj) 00062 i=i4 00063 j=j4 00064 else 00065 vec(2)='`' 00066 end if 00067 j32=j/32 00068 vec(1)=char(32+j32) 00069 vec(3)=char(96+(j-32*j32)) 00070 i32=i/32 00071 vec(4)=char(32+i32) 00072 vec(5)=char(64+(i-32*i32)) 00073 c 00074 c (these assignments are ok because none of the values are >127) 00075 c 00076 if(idev.lt.13)then 00077 if(ipen.eq.3)then 00078 call type string(vec(0),6) 00079 else 00080 call type string(vec(1),5) 00081 end if 00082 else 00083 if(ipen.eq.3)then 00084 call type string(up,3) 00085 else 00086 call type string(down,3) 00087 end if 00088 call type string(vec(1),5) 00089 end if 00090 end