diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
commit | fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch) | |
tree | bdda434976bc09c864f2e4fa6f16ba1952b1e555 /unix/bin.cygwin | |
download | iraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz |
Initial commit
Diffstat (limited to 'unix/bin.cygwin')
-rw-r--r-- | unix/bin.cygwin/arch_includes/fio.h | 146 | ||||
-rw-r--r-- | unix/bin.cygwin/arch_includes/pllseg.h | 62 | ||||
-rw-r--r-- | unix/bin.cygwin/arch_includes/plrseg.h | 68 | ||||
-rwxr-xr-x | unix/bin.cygwin/f2c.e.exe | bin | 0 -> 268298 bytes | |||
-rw-r--r-- | unix/bin.cygwin/f2c.h | 228 | ||||
-rw-r--r-- | unix/bin.cygwin/fio.h | 146 | ||||
-rw-r--r-- | unix/bin.cygwin/libf2c.a | bin | 0 -> 147408 bytes | |||
-rw-r--r-- | unix/bin.cygwin/pllseg.h | 62 | ||||
-rw-r--r-- | unix/bin.cygwin/plrseg.h | 68 |
9 files changed, 780 insertions, 0 deletions
diff --git a/unix/bin.cygwin/arch_includes/fio.h b/unix/bin.cygwin/arch_includes/fio.h new file mode 100644 index 00000000..4d9e8f49 --- /dev/null +++ b/unix/bin.cygwin/arch_includes/fio.h @@ -0,0 +1,146 @@ +# FIO.H -- FIO definitions. + +# Logical seek: adjust i/o pointer to the seek offset. If the buffer was +# being written into when the seek occurs, adjust ITOP and OTOP to mark +# the end of the good data in the buffer, then set IOP to new offset. + +define (UPDATE_IOP, if (bufptr[$1] != NULL && otop[$1] == buftop[$1]) { itop[$1] = min(buftop[$1], max(itop[$1], iop[$1])) ; otop[$1] = itop[$1] }) +define (LSEEK, {UPDATE_IOP($1);iop[$1]=($2-boffset[$1]+bufptr[$1])}) +define LNOTE (boffset[$1]+iop[$1]-bufptr[$1]) +define BUF_MODIFIED (otop[$1] > bufptr[$1]) + +define INACTIVE 0 +define READ_IN_PROGRESS 1 +define WRITE_IN_PROGRESS 2 + + +# File descriptor structure (dynamically allocated part) + +define SZ_FFNAME 255 +define LEN_FIODES (20+LEN_CHANDES+256) + +define FCHAN Memi[$1] # os channnel +define FMODE Memi[$1+1] # mode of access +define FTYPE Memi[$1+2] # binary or text +define FDEV Memi[$1+3] # device index +define FBUFSIZE Memi[$1+4] # buffer size +define FIRSTBUFOFF Memi[$1+5] # offset of first file buffer +define FNBUFS Memi[$1+6] # number of buffers +define FLOCBUF Memi[$1+7] # zlocva of aread buffer +define FPBBUFSIZE Memi[$1+8] # size pushback buffer +define FPBBUF Memi[$1+9] # ptr to pushback buffer +define FPBTOP Memi[$1+10] # ptr to top of pbbuf +define FPBIOP Memi[$1+11] # iop into pbbuf +define FPBSP Memi[$1+12] # pbbuf stack pointer +define FILSTAT Memi[$1+13] # channel status +define FNCHARS Memi[$1+14] # nchars last i/o +define FNBYTES Memi[$1+15] # nbytes last rec read +define FBUFMODE Memi[$1+16] # i/o mode for buffer +define FFIOMODE Memi[$1+17] # i/o mode for file +define FCD Memi[$1+18] # ptr to chan descr. + # (open) +define FLCD ($1+20) # local storage for cd +define FNAME Memc[P2C($1+20+LEN_CHANDES)] # filename + +# Channel descriptor (stored in fd if file not multiply open). The DEVPAR +# (device parameter) fields are reserved for use with special devices and +# are not used by FIO. + +define LEN_CHANDES (10+256) +define FREFCNT Memi[FCD($1)] # chan reference count +define FCIOMODE Memi[FCD($1)+1] # chan i/o mode +define FCLOSEFD Memi[FCD($1)+2] # close chan when inactive +define FAFD Memi[FCD($1)+3] # active fd +define FBLKSIZE Memi[FCD($1)+4] # device block size +define FOPTBUFSIZE Memi[FCD($1)+5] # "optimum" buffer size +define FMAXBUFSIZE Memi[FCD($1)+6] # maximum buffer size +define FDEVOPEN Memi[FCD($1)+7] # device zopen proc +define FILSZ_PTR FCD($1)+8 +define FILSIZE Meml[FILSZ_PTR($1)] # file size, chars +define FPKOSFN Memc[P2C(FCD($1)+10)] # packed osfn of file + + +# Flags + +define FF_FLUSHNL 1B # flush each line to output device +define FF_READ 2B # read perm on file +define FF_WRITE 4B # write perm on file +define FF_EOF 10B # at EOF +define FF_ERR 20B # i/o error +define FF_KEEP 40B # keep file open after task quits? +define FF_FLUSH 100B # write each line to z buffer +define FF_RAW 200B # raw i/o when reading a text device +define FF_NDELAY 400B # nonblocking i/o +define FF_PUSHBACK 1000B # data is pushed back into input + + +# Device table entry points + +define LEN_DTE 7 # length of device table entry +define TX_DRIVER 1 # index into devtbl of textfile driver +define BF_DRIVER 8 # index of binary file driver +define TY_DRIVER 15 # index of terminal driver +define PR_DRIVER 22 # index of IPC driver +define SF_DRIVER 29 # index of static file driver +define STD_DRIVER ($1 <= 29) # is device code that of a std driver? + +define ZGETTX zdev[FDEV($1)] # text files +define ZPUTTX zdev[FDEV($1)+1] +define ZFLSTX zdev[FDEV($1)+2] +define ZSTTTX zdev[FDEV($1)+3] +define ZCLSTX zdev[FDEV($1)+4] +define ZSEKTX zdev[FDEV($1)+5] +define ZNOTTX zdev[FDEV($1)+6] + +define ZARDBF zdev[FDEV($1)] # binary files +define ZAWRBF zdev[FDEV($1)+1] +define ZAWTBF zdev[FDEV($1)+2] +define ZSTTBF zdev[FDEV($1)+3] +define ZCLSBF zdev[FDEV($1)+4] + + +# File status codes (ZFSTTX, ZFSTTB). FIO makes a distinction between the +# device block size, which establishes the alignment restrictions for +# asynchronous reads and writes, and the "optimal" buffer size, the default +# buffer size supplied by the device z-routines, which defines the minimum +# buffer size for efficient sequential access to the device. + +define FSTT_BLKSIZE 1 # block size, bytes +define FSTT_FILSIZE 2 # file size, bytes +define FSTT_OPTBUFSIZE 3 # optimum buffer size, bytes +define FSTT_MAXBUFSIZE 4 # optimum buffer size, bytes + +define REMOVE_PROTECTION 0 # for ZFPROT +define SET_PROTECTION 1 +define QUERY_PROTECTION 2 + +define STRING_FILE (-1) # open a string as a file +define SZ_SPOOLBUF 4096 # def. initial size of a spool buffer + + +# Filename Mapping definitions. + +define SZ_VFNFN 127 # max size ROOT or EXTN in VFN +define SZ_OSDIR 255 # max chars in V_OSDIR field + +define VFN_READ 1 # VFN access modes for VFNOPEN +define VFN_WRITE 2 +define VFN_UNMAP 3 + +define VFN_NOUPDATE 0 # update flag for VFNCLOSE +define VFN_UPDATE 1 + + +# Terminal driver escape sequences. + +define LEN_RAWCMD 5 # +1 for iomode character (N|B) +define RAWOFF "\033-rAw" # raw mode off +define RAWON "\033+rAw" # raw mode on + +define LEN_SETREDRAW 6 # 5 char escape sequence + code +define SETREDRAW "\033=rDw" # set/enable screen redraw code + + +# Magtape driver global definitions. + +define LEN_MTDEVPOS 5 diff --git a/unix/bin.cygwin/arch_includes/pllseg.h b/unix/bin.cygwin/arch_includes/pllseg.h new file mode 100644 index 00000000..c2bc1811 --- /dev/null +++ b/unix/bin.cygwin/arch_includes/pllseg.h @@ -0,0 +1,62 @@ +# PLLSEG.H -- Macros for sequentially reading segments of a line list. +# +# pll_init (ll, descriptor) +# npix = pll_nleft (descriptor) +# val = pll_getseg (ll, descriptor, npix, value) +# +# pll_init Initialize descriptor for sequential i/o from the linelist LL. +# pll_nleft Number of pixels left in the current line segment of constant +# value. Zero is returned at the EOL. +# pll_getseg Read NPIX pixels from the current segment, advancing to the +# next segment automatically when the the current segment is +# exhausted. +# +# The descriptor is an integer array, the contents of which are hidden from +# the application using these macros. This package uses the internal +# procedure PLL_NEXTSEG, which is included in PL package library. + +# Range list i/o descriptor. +define LEN_PLLDES 7 +define ld_nleft $1[1] +define ld_value $1[2] +define ld_x $1[3] +define ld_ip $1[4] +define ld_hi $1[5] +define ld_next_nleft $1[6] +define ld_next_value $1[7] + +# PLL_NLEFT -- Number of pixels left in the current segment. +define pll_nleft ld_nleft($1) + +## PLL_INIT -- Initialize the linelist descriptor. +#define (pll_init, { # $1=ll $2=des +# # ld_x($2) = 1 +# ld_hi($2) = 1 +# if (LL_OLDFORMAT($1)) +# ld_ip($2) = OLL_FIRST +# else +# ld_ip($2) = LL_FIRST($1) +# ld_next_nleft($2) = 0 +# ld_nleft($2) = 0 +# call pll_nextseg ($1, $2) +#}) + +define (pll_init, {ld_hi($2)=1;if(LL_OLDFORMAT($1)){ld_ip($2)=OLL_FIRST;}else{ld_ip($2)=LL_FIRST($1);}ld_next_nleft($2)=0;ld_nleft($2)=0;call pll_nextseg($1,$2);}) + +# +## PLL_GETSEG -- Read pixels from the current segment. +#define (pll_getseg, { # $1=ll $2=des $3=npix $4=value +# $4 = ld_value($2) +# # ld_x($2) = ld_x($2) + $3 +# ld_nleft($2) = ld_nleft($2) - $3 +# if (ld_nleft($2) <= 0) +# if (ld_next_nleft($2) > 0) { +# ld_nleft($2) = ld_next_nleft($2) +# ld_value($2) = ld_next_value($2) +# ld_next_nleft($2) = 0 +# } else +# call pll_nextseg ($1, $2) +#}) + +define (pll_getseg, {$4=ld_value($2);ld_nleft($2)=ld_nleft($2)-$3;if(ld_nleft($2)<=0){if(ld_next_nleft($2)>0){ld_nleft($2)=ld_next_nleft($2);ld_value($2)=ld_next_value($2);ld_next_nleft($2)=0;}else{call pll_nextseg($1,$2);}}}) + diff --git a/unix/bin.cygwin/arch_includes/plrseg.h b/unix/bin.cygwin/arch_includes/plrseg.h new file mode 100644 index 00000000..2f32a9ab --- /dev/null +++ b/unix/bin.cygwin/arch_includes/plrseg.h @@ -0,0 +1,68 @@ +# PLRSEG.H -- Macros for sequentially reading segments of a range list. +# +# plr_init (rl, descriptor) +# npix = plr_nleft (descriptor) +# val = plr_getseg (rl, descriptor, npix, value) +# +# plr_init Initialize descriptor for sequential i/o from the rangelist RL. +# plr_nleft Number of pixels left in the current line segment of constant +# value. Zero is returned at the EOL. +# plr_getseg Read NPIX pixels from the current segment, advancing to the +# next segment automatically when the the current segment is +# exhausted. +# +# The descriptor is an integer array, the contents of which are hidden from +# the application using these macros. + +# Range list i/o descriptor. +define LEN_PLRDES 4 +define rd_nleft $1[1] +define rd_value $1[2] +define rd_x $1[3] +define rd_rn $1[4] + +# PLR_NLEFT -- Number of pixels left in the current segment. +define plr_nleft rd_nleft($1) + +# PLR_INIT -- Initialize the rangelist descriptor. +#define (plr_init, { # $1=rl $2=des +# rd_x($2) = 1 +# rd_rn($2) = RL_FIRST +# plr_nextseg ($1, $2) +#}) + +# PLR_GETSEG -- Read pixels from the current segment. +#define (plr_getseg, { # $1=rl $2=des $3=npix $4=value +# $4 = rd_value($2) +# rd_x($2) = rd_x($2) + $3 +# rd_nleft($2) = rd_nleft($2) - $3 +# if (rd_nleft($2) <= 0) +# plr_nextseg ($1, $2) +#}) + +# PLR_NEXTSEG -- Set up the next segment (internal routine). +#define (plr_nextseg, { # $1=rl $2=des +# if (rd_rn($2) <= RL_LEN($1)) { +# if ($1[1,rd_rn($2)] > rd_x($2)) { +# rd_value($2) = 0 +# rd_nleft($2) = $1[1,rd_x($2)] - rd_x($2) +# } else { +# rd_value($2) = $1[3,rd_rn($2)] +# rd_nleft($2) = $1[2,rd_rn($2)] +# rd_rn($2) = rd_rn($2) + 1 +# } +# } else if (rd_x($2) <= RL_AXLEN($1)) { +# rd_value($2) = 0 +# rd_nleft($2) = RL_AXLEN($1) - rd_x($2) + 1 +# } +#}) + + +# PLR_INIT -- Initialize the rangelist descriptor. +define (plr_init, {rd_x($2)=1;rd_rn($2)=RL_FIRST;plr_nextseg($1,$2);}) + +# PLR_GETSEG -- Read pixels from the current segment. +define (plr_getseg, {$4=rd_value($2);rd_x($2)=rd_x($2)+$3;rd_nleft($2)=rd_nleft($2)-$3;if(rd_nleft($2) <= 0){plr_nextseg($1,$2)}}) + +# PLR_NEXTSEG -- Set up the next segment (internal routine). +define (plr_nextseg, {if(rd_rn($2)<=RL_LEN($1)){if($1[1,rd_rn($2)]>rd_x($2)){rd_value($2)=0;rd_nleft($2)=$1[1,rd_x($2)]-rd_x($2);}else{rd_value($2)=$1[3,rd_rn($2)];rd_nleft($2)=$1[2,rd_rn($2)];rd_rn($2)=rd_rn($2)+1;}}else if(rd_x($2)<=RL_AXLEN($1)){rd_value($2)=0;rd_nleft($2)=RL_AXLEN($1)-rd_x($2)+1;}}) diff --git a/unix/bin.cygwin/f2c.e.exe b/unix/bin.cygwin/f2c.e.exe Binary files differnew file mode 100755 index 00000000..d6bfb29b --- /dev/null +++ b/unix/bin.cygwin/f2c.e.exe diff --git a/unix/bin.cygwin/f2c.h b/unix/bin.cygwin/f2c.h new file mode 100644 index 00000000..6af1cdc0 --- /dev/null +++ b/unix/bin.cygwin/f2c.h @@ -0,0 +1,228 @@ +/* f2c.h -- Standard Fortran to C header file */ + +/** barf [ba:rf] 2. "He suggested using FORTRAN, and everybody barfed." + + - From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */ + +#ifndef F2C_INCLUDE +#define F2C_INCLUDE + +/* +typedef long int integer; +typedef long int logical; +*/ +typedef int integer; +typedef int logical; + +typedef unsigned long int uinteger; +typedef char *address; +typedef short int shortint; +typedef float real; +typedef double doublereal; +typedef struct { real r, i; } complex; +typedef struct { doublereal r, i; } doublecomplex; +typedef short int shortlogical; +typedef char logical1; +typedef char integer1; +#ifdef INTEGER_STAR_8 /* Adjust for integer*8. */ +typedef long long longint; /* system-dependent */ +typedef unsigned long long ulongint; /* system-dependent */ +#define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b))) +#define qbit_set(a,b) ((a) | ((ulongint)1 << (b))) +#endif + +#define TRUE_ (1) +#define FALSE_ (0) + +/* Extern is for use with -E */ +#ifndef Extern +#define Extern extern +#endif + +/* I/O stuff */ + +#ifdef f2c_i2 +/* for -i2 */ +typedef short flag; +typedef short ftnlen; +typedef short ftnint; +#else +typedef long int flag; +typedef long int ftnlen; +typedef long int ftnint; +#endif + +/*external read, write*/ +typedef struct +{ flag cierr; + ftnint ciunit; + flag ciend; + char *cifmt; + ftnint cirec; +} cilist; + +/*internal read, write*/ +typedef struct +{ flag icierr; + char *iciunit; + flag iciend; + char *icifmt; + ftnint icirlen; + ftnint icirnum; +} icilist; + +/*open*/ +typedef struct +{ flag oerr; + ftnint ounit; + char *ofnm; + ftnlen ofnmlen; + char *osta; + char *oacc; + char *ofm; + ftnint orl; + char *oblnk; +} olist; + +/*close*/ +typedef struct +{ flag cerr; + ftnint cunit; + char *csta; +} cllist; + +/*rewind, backspace, endfile*/ +typedef struct +{ flag aerr; + ftnint aunit; +} alist; + +/* inquire */ +typedef struct +{ flag inerr; + ftnint inunit; + char *infile; + ftnlen infilen; + ftnint *inex; /*parameters in standard's order*/ + ftnint *inopen; + ftnint *innum; + ftnint *innamed; + char *inname; + ftnlen innamlen; + char *inacc; + ftnlen inacclen; + char *inseq; + ftnlen inseqlen; + char *indir; + ftnlen indirlen; + char *infmt; + ftnlen infmtlen; + char *inform; + ftnint informlen; + char *inunf; + ftnlen inunflen; + ftnint *inrecl; + ftnint *innrec; + char *inblank; + ftnlen inblanklen; +} inlist; + +#define VOID void + +union Multitype { /* for multiple entry points */ + integer1 g; + shortint h; + integer i; + /* longint j; */ + real r; + doublereal d; + complex c; + doublecomplex z; + }; + +typedef union Multitype Multitype; + +/*typedef long int Long;*/ /* No longer used; formerly in Namelist */ + +struct Vardesc { /* for Namelist */ + char *name; + char *addr; + ftnlen *dims; + int type; + }; +typedef struct Vardesc Vardesc; + +struct Namelist { + char *name; + Vardesc **vars; + int nvars; + }; +typedef struct Namelist Namelist; + +#define abs(x) ((x) >= 0 ? (x) : -(x)) +#define dabs(x) (doublereal)abs(x) +#define min(a,b) ((a) <= (b) ? (a) : (b)) +#define max(a,b) ((a) >= (b) ? (a) : (b)) +#define dmin(a,b) (doublereal)min(a,b) +#define dmax(a,b) (doublereal)max(a,b) +#define bit_test(a,b) ((a) >> (b) & 1) +#define bit_clear(a,b) ((a) & ~((uinteger)1 << (b))) +#define bit_set(a,b) ((a) | ((uinteger)1 << (b))) + +/* procedure parameter types for -A and -C++ */ + +#define F2C_proc_par_types 1 +#ifdef __cplusplus +typedef int /* Unknown procedure type */ (*U_fp)(...); +typedef shortint (*J_fp)(...); +typedef integer (*I_fp)(...); +typedef real (*R_fp)(...); +typedef doublereal (*D_fp)(...), (*E_fp)(...); +typedef /* Complex */ VOID (*C_fp)(...); +typedef /* Double Complex */ VOID (*Z_fp)(...); +typedef logical (*L_fp)(...); +typedef shortlogical (*K_fp)(...); +typedef /* Character */ VOID (*H_fp)(...); +typedef /* Subroutine */ int (*S_fp)(...); +#else +typedef int /* Unknown procedure type */ (*U_fp)(); +typedef shortint (*J_fp)(); +typedef integer (*I_fp)(); +typedef real (*R_fp)(); +typedef doublereal (*D_fp)(), (*E_fp)(); +typedef /* Complex */ VOID (*C_fp)(); +typedef /* Double Complex */ VOID (*Z_fp)(); +typedef logical (*L_fp)(); +typedef shortlogical (*K_fp)(); +typedef /* Character */ VOID (*H_fp)(); +typedef /* Subroutine */ int (*S_fp)(); +#endif +/* E_fp is for real functions when -R is not specified */ +typedef VOID C_f; /* complex function */ +typedef VOID H_f; /* character function */ +typedef VOID Z_f; /* double complex function */ +typedef doublereal E_f; /* real function with -R not specified */ + +/* undef any lower-case symbols that your C compiler predefines, e.g.: */ + +#ifndef Skip_f2c_Undefs +#undef cray +#undef gcos +#undef mc68010 +#undef mc68020 +#undef mips +#undef pdp11 +#undef sgi +#undef sparc +#undef sun +#undef sun2 +#undef sun3 +#undef sun4 +#undef u370 +#undef u3b +#undef u3b2 +#undef u3b5 +#undef unix +#undef vax +#endif +#endif diff --git a/unix/bin.cygwin/fio.h b/unix/bin.cygwin/fio.h new file mode 100644 index 00000000..4d9e8f49 --- /dev/null +++ b/unix/bin.cygwin/fio.h @@ -0,0 +1,146 @@ +# FIO.H -- FIO definitions. + +# Logical seek: adjust i/o pointer to the seek offset. If the buffer was +# being written into when the seek occurs, adjust ITOP and OTOP to mark +# the end of the good data in the buffer, then set IOP to new offset. + +define (UPDATE_IOP, if (bufptr[$1] != NULL && otop[$1] == buftop[$1]) { itop[$1] = min(buftop[$1], max(itop[$1], iop[$1])) ; otop[$1] = itop[$1] }) +define (LSEEK, {UPDATE_IOP($1);iop[$1]=($2-boffset[$1]+bufptr[$1])}) +define LNOTE (boffset[$1]+iop[$1]-bufptr[$1]) +define BUF_MODIFIED (otop[$1] > bufptr[$1]) + +define INACTIVE 0 +define READ_IN_PROGRESS 1 +define WRITE_IN_PROGRESS 2 + + +# File descriptor structure (dynamically allocated part) + +define SZ_FFNAME 255 +define LEN_FIODES (20+LEN_CHANDES+256) + +define FCHAN Memi[$1] # os channnel +define FMODE Memi[$1+1] # mode of access +define FTYPE Memi[$1+2] # binary or text +define FDEV Memi[$1+3] # device index +define FBUFSIZE Memi[$1+4] # buffer size +define FIRSTBUFOFF Memi[$1+5] # offset of first file buffer +define FNBUFS Memi[$1+6] # number of buffers +define FLOCBUF Memi[$1+7] # zlocva of aread buffer +define FPBBUFSIZE Memi[$1+8] # size pushback buffer +define FPBBUF Memi[$1+9] # ptr to pushback buffer +define FPBTOP Memi[$1+10] # ptr to top of pbbuf +define FPBIOP Memi[$1+11] # iop into pbbuf +define FPBSP Memi[$1+12] # pbbuf stack pointer +define FILSTAT Memi[$1+13] # channel status +define FNCHARS Memi[$1+14] # nchars last i/o +define FNBYTES Memi[$1+15] # nbytes last rec read +define FBUFMODE Memi[$1+16] # i/o mode for buffer +define FFIOMODE Memi[$1+17] # i/o mode for file +define FCD Memi[$1+18] # ptr to chan descr. + # (open) +define FLCD ($1+20) # local storage for cd +define FNAME Memc[P2C($1+20+LEN_CHANDES)] # filename + +# Channel descriptor (stored in fd if file not multiply open). The DEVPAR +# (device parameter) fields are reserved for use with special devices and +# are not used by FIO. + +define LEN_CHANDES (10+256) +define FREFCNT Memi[FCD($1)] # chan reference count +define FCIOMODE Memi[FCD($1)+1] # chan i/o mode +define FCLOSEFD Memi[FCD($1)+2] # close chan when inactive +define FAFD Memi[FCD($1)+3] # active fd +define FBLKSIZE Memi[FCD($1)+4] # device block size +define FOPTBUFSIZE Memi[FCD($1)+5] # "optimum" buffer size +define FMAXBUFSIZE Memi[FCD($1)+6] # maximum buffer size +define FDEVOPEN Memi[FCD($1)+7] # device zopen proc +define FILSZ_PTR FCD($1)+8 +define FILSIZE Meml[FILSZ_PTR($1)] # file size, chars +define FPKOSFN Memc[P2C(FCD($1)+10)] # packed osfn of file + + +# Flags + +define FF_FLUSHNL 1B # flush each line to output device +define FF_READ 2B # read perm on file +define FF_WRITE 4B # write perm on file +define FF_EOF 10B # at EOF +define FF_ERR 20B # i/o error +define FF_KEEP 40B # keep file open after task quits? +define FF_FLUSH 100B # write each line to z buffer +define FF_RAW 200B # raw i/o when reading a text device +define FF_NDELAY 400B # nonblocking i/o +define FF_PUSHBACK 1000B # data is pushed back into input + + +# Device table entry points + +define LEN_DTE 7 # length of device table entry +define TX_DRIVER 1 # index into devtbl of textfile driver +define BF_DRIVER 8 # index of binary file driver +define TY_DRIVER 15 # index of terminal driver +define PR_DRIVER 22 # index of IPC driver +define SF_DRIVER 29 # index of static file driver +define STD_DRIVER ($1 <= 29) # is device code that of a std driver? + +define ZGETTX zdev[FDEV($1)] # text files +define ZPUTTX zdev[FDEV($1)+1] +define ZFLSTX zdev[FDEV($1)+2] +define ZSTTTX zdev[FDEV($1)+3] +define ZCLSTX zdev[FDEV($1)+4] +define ZSEKTX zdev[FDEV($1)+5] +define ZNOTTX zdev[FDEV($1)+6] + +define ZARDBF zdev[FDEV($1)] # binary files +define ZAWRBF zdev[FDEV($1)+1] +define ZAWTBF zdev[FDEV($1)+2] +define ZSTTBF zdev[FDEV($1)+3] +define ZCLSBF zdev[FDEV($1)+4] + + +# File status codes (ZFSTTX, ZFSTTB). FIO makes a distinction between the +# device block size, which establishes the alignment restrictions for +# asynchronous reads and writes, and the "optimal" buffer size, the default +# buffer size supplied by the device z-routines, which defines the minimum +# buffer size for efficient sequential access to the device. + +define FSTT_BLKSIZE 1 # block size, bytes +define FSTT_FILSIZE 2 # file size, bytes +define FSTT_OPTBUFSIZE 3 # optimum buffer size, bytes +define FSTT_MAXBUFSIZE 4 # optimum buffer size, bytes + +define REMOVE_PROTECTION 0 # for ZFPROT +define SET_PROTECTION 1 +define QUERY_PROTECTION 2 + +define STRING_FILE (-1) # open a string as a file +define SZ_SPOOLBUF 4096 # def. initial size of a spool buffer + + +# Filename Mapping definitions. + +define SZ_VFNFN 127 # max size ROOT or EXTN in VFN +define SZ_OSDIR 255 # max chars in V_OSDIR field + +define VFN_READ 1 # VFN access modes for VFNOPEN +define VFN_WRITE 2 +define VFN_UNMAP 3 + +define VFN_NOUPDATE 0 # update flag for VFNCLOSE +define VFN_UPDATE 1 + + +# Terminal driver escape sequences. + +define LEN_RAWCMD 5 # +1 for iomode character (N|B) +define RAWOFF "\033-rAw" # raw mode off +define RAWON "\033+rAw" # raw mode on + +define LEN_SETREDRAW 6 # 5 char escape sequence + code +define SETREDRAW "\033=rDw" # set/enable screen redraw code + + +# Magtape driver global definitions. + +define LEN_MTDEVPOS 5 diff --git a/unix/bin.cygwin/libf2c.a b/unix/bin.cygwin/libf2c.a Binary files differnew file mode 100644 index 00000000..58bcc126 --- /dev/null +++ b/unix/bin.cygwin/libf2c.a diff --git a/unix/bin.cygwin/pllseg.h b/unix/bin.cygwin/pllseg.h new file mode 100644 index 00000000..c2bc1811 --- /dev/null +++ b/unix/bin.cygwin/pllseg.h @@ -0,0 +1,62 @@ +# PLLSEG.H -- Macros for sequentially reading segments of a line list. +# +# pll_init (ll, descriptor) +# npix = pll_nleft (descriptor) +# val = pll_getseg (ll, descriptor, npix, value) +# +# pll_init Initialize descriptor for sequential i/o from the linelist LL. +# pll_nleft Number of pixels left in the current line segment of constant +# value. Zero is returned at the EOL. +# pll_getseg Read NPIX pixels from the current segment, advancing to the +# next segment automatically when the the current segment is +# exhausted. +# +# The descriptor is an integer array, the contents of which are hidden from +# the application using these macros. This package uses the internal +# procedure PLL_NEXTSEG, which is included in PL package library. + +# Range list i/o descriptor. +define LEN_PLLDES 7 +define ld_nleft $1[1] +define ld_value $1[2] +define ld_x $1[3] +define ld_ip $1[4] +define ld_hi $1[5] +define ld_next_nleft $1[6] +define ld_next_value $1[7] + +# PLL_NLEFT -- Number of pixels left in the current segment. +define pll_nleft ld_nleft($1) + +## PLL_INIT -- Initialize the linelist descriptor. +#define (pll_init, { # $1=ll $2=des +# # ld_x($2) = 1 +# ld_hi($2) = 1 +# if (LL_OLDFORMAT($1)) +# ld_ip($2) = OLL_FIRST +# else +# ld_ip($2) = LL_FIRST($1) +# ld_next_nleft($2) = 0 +# ld_nleft($2) = 0 +# call pll_nextseg ($1, $2) +#}) + +define (pll_init, {ld_hi($2)=1;if(LL_OLDFORMAT($1)){ld_ip($2)=OLL_FIRST;}else{ld_ip($2)=LL_FIRST($1);}ld_next_nleft($2)=0;ld_nleft($2)=0;call pll_nextseg($1,$2);}) + +# +## PLL_GETSEG -- Read pixels from the current segment. +#define (pll_getseg, { # $1=ll $2=des $3=npix $4=value +# $4 = ld_value($2) +# # ld_x($2) = ld_x($2) + $3 +# ld_nleft($2) = ld_nleft($2) - $3 +# if (ld_nleft($2) <= 0) +# if (ld_next_nleft($2) > 0) { +# ld_nleft($2) = ld_next_nleft($2) +# ld_value($2) = ld_next_value($2) +# ld_next_nleft($2) = 0 +# } else +# call pll_nextseg ($1, $2) +#}) + +define (pll_getseg, {$4=ld_value($2);ld_nleft($2)=ld_nleft($2)-$3;if(ld_nleft($2)<=0){if(ld_next_nleft($2)>0){ld_nleft($2)=ld_next_nleft($2);ld_value($2)=ld_next_value($2);ld_next_nleft($2)=0;}else{call pll_nextseg($1,$2);}}}) + diff --git a/unix/bin.cygwin/plrseg.h b/unix/bin.cygwin/plrseg.h new file mode 100644 index 00000000..2f32a9ab --- /dev/null +++ b/unix/bin.cygwin/plrseg.h @@ -0,0 +1,68 @@ +# PLRSEG.H -- Macros for sequentially reading segments of a range list. +# +# plr_init (rl, descriptor) +# npix = plr_nleft (descriptor) +# val = plr_getseg (rl, descriptor, npix, value) +# +# plr_init Initialize descriptor for sequential i/o from the rangelist RL. +# plr_nleft Number of pixels left in the current line segment of constant +# value. Zero is returned at the EOL. +# plr_getseg Read NPIX pixels from the current segment, advancing to the +# next segment automatically when the the current segment is +# exhausted. +# +# The descriptor is an integer array, the contents of which are hidden from +# the application using these macros. + +# Range list i/o descriptor. +define LEN_PLRDES 4 +define rd_nleft $1[1] +define rd_value $1[2] +define rd_x $1[3] +define rd_rn $1[4] + +# PLR_NLEFT -- Number of pixels left in the current segment. +define plr_nleft rd_nleft($1) + +# PLR_INIT -- Initialize the rangelist descriptor. +#define (plr_init, { # $1=rl $2=des +# rd_x($2) = 1 +# rd_rn($2) = RL_FIRST +# plr_nextseg ($1, $2) +#}) + +# PLR_GETSEG -- Read pixels from the current segment. +#define (plr_getseg, { # $1=rl $2=des $3=npix $4=value +# $4 = rd_value($2) +# rd_x($2) = rd_x($2) + $3 +# rd_nleft($2) = rd_nleft($2) - $3 +# if (rd_nleft($2) <= 0) +# plr_nextseg ($1, $2) +#}) + +# PLR_NEXTSEG -- Set up the next segment (internal routine). +#define (plr_nextseg, { # $1=rl $2=des +# if (rd_rn($2) <= RL_LEN($1)) { +# if ($1[1,rd_rn($2)] > rd_x($2)) { +# rd_value($2) = 0 +# rd_nleft($2) = $1[1,rd_x($2)] - rd_x($2) +# } else { +# rd_value($2) = $1[3,rd_rn($2)] +# rd_nleft($2) = $1[2,rd_rn($2)] +# rd_rn($2) = rd_rn($2) + 1 +# } +# } else if (rd_x($2) <= RL_AXLEN($1)) { +# rd_value($2) = 0 +# rd_nleft($2) = RL_AXLEN($1) - rd_x($2) + 1 +# } +#}) + + +# PLR_INIT -- Initialize the rangelist descriptor. +define (plr_init, {rd_x($2)=1;rd_rn($2)=RL_FIRST;plr_nextseg($1,$2);}) + +# PLR_GETSEG -- Read pixels from the current segment. +define (plr_getseg, {$4=rd_value($2);rd_x($2)=rd_x($2)+$3;rd_nleft($2)=rd_nleft($2)-$3;if(rd_nleft($2) <= 0){plr_nextseg($1,$2)}}) + +# PLR_NEXTSEG -- Set up the next segment (internal routine). +define (plr_nextseg, {if(rd_rn($2)<=RL_LEN($1)){if($1[1,rd_rn($2)]>rd_x($2)){rd_value($2)=0;rd_nleft($2)=$1[1,rd_x($2)]-rd_x($2);}else{rd_value($2)=$1[3,rd_rn($2)];rd_nleft($2)=$1[2,rd_rn($2)];rd_rn($2)=rd_rn($2)+1;}}else if(rd_x($2)<=RL_AXLEN($1)){rd_value($2)=0;rd_nleft($2)=RL_AXLEN($1)-rd_x($2)+1;}}) |