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