From m14051%mwvm@mitre.ARPA Tue Feb 25 17:09:45 1986 From: m14051%mwvm@mitre.ARPA Organization: The MITRE Corp., Washington, D.C. Apparently-To: icon-group%arizona.csnet@csnet-relay.arpa Status: R To: ICON-GROUP%ARIZONA.CSNET@CSNET-RELAY.A From: John DeCarlo Subject: Placement on the ICON-Group mailing list Would you please putme on the Icon Group Mailing List? Thank you very much. John DeCarlo From whm Mon Mar 10 20:52:41 1986 From: "Bill Mitchell" To: icon-group Subject: Testing... Status: R Please ignore this test. (!) From ralph Tue Mar 11 05:32:28 1986 From: "Ralph Griswold" To: icon-group@arizona Subject: Icon Newsletter #20 Status: R Icon Newsletter #20 was mailed out several weeks ago to persons who were then on our mailing list. It was sent bulkrate to addresses in the United States, but it should have been delivered by now. If you did not get a copy or know of someone who would like a copy but who is not on our list, send us a postal address and we'll mail one. From ralph Sat Mar 15 08:42:07 1986 From: "Ralph Griswold" To: icon-group@arizona Subject: math procedures Status: R George Yee, a graduate student in the Department of Computer Science at the University of Arizona, has written a package of math procedures in Icon. A UNIX-style manual page and the source code for these procedures follow: ----------------------------------------------------------------------- MATH(3.icon) Icon Program Library MATH(3.icon) NAME sin, cos, tan, asin, acos, atan, atan2 - trigonometric func- tions and their inverses SYNOPSIS link "math" sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) atan2(y,x) dtor(deg) rtod(rad) DESCRIPTION Sin, cos and tan return trigonometric functions of radian arguments x. Asin returns the arc sine in the range -pi/2 to pi/2. Acos returns the arc cosine in the range 0 to pi. Atan returns the arc tangent in the range -pi/2 to pi/2. Atan2(y,x) := atan(y/x) if x > 0, sign(y)*(pi - atan(|y/x|)) if x < 0, 0 if x = y = 0, or sign(y)*pi/2 if x = 0 ~= y. Dtor converts degrees to radians, while rtod converts radi- ans to degrees. DIAGNOSTICS If |x| > 1 then asin(x) and acos(x) will fail. MATH(3.icon) Icon Program Library MATH(3.icon) NAME sqrt - square root SYNOPSIS link "math" sqrt(x) DESCRIPTION Sqrt(x) returns the square root of x. DIAGNOSTICS Sqrt(negative) fails to produce a result. MATH(3.icon) Icon Program Library MATH(3.icon) NAME exp, log, log10 - exponential and logarithm SYNOPSIS link "math" exp(x) log(x) log10(x) DESCRIPTION Exp returns the exponential function of x. Log returns the natural logarithm of x. Log10 returns the logarithm of x to base 10. DIAGNOSTICS Log(negative) and log10(negative) fail to produce a result. MATH(3.icon) Icon Program Library MATH(3.icon) NAME floor, ceil - floor and ceiling SYNOPSIS link "math" floor(x) ceil(x) DESCRIPTION Floor returns the largest integer no greater than x. Ceil returns the smallest integer no less than x. ----------------------------------------------------------------------- # math.icn - mathematical procedures for Icon programming language # # Version 1.0 created on 10 February 1986. # # Procedures developed in Icon by George D. Yee # 1847 N. Frances Blvd. # Tucson, AZ 85712 # # Free distribution and use of this material is granted provided the # above credit is left intact on all source copies. No warranties # are made as to the correctness or suitability of these procedures # for any purpose. Please send any suggestions to me at the above # address. # procedure sin(x) return _sinus(numeric(x),0) end procedure cos(x) return _sinus(abs(numeric(x)),1) end procedure tan(x) return sin(x) / (0.0 ~= cos(x)) end # atan returns the value of the arctangent of its # argument in the range [-pi/2,pi/2]. procedure atan(x) if numeric(x) then return if x > 0.0 then _satan(x) else -_satan(-x) end # atan2 returns the arctangent of y/x # in the range [-pi,pi]. procedure atan2(y,x) local r static pi initial pi := 3.141592653589793238462643 return if numeric(y) & numeric(x) then { if x > 0.0 then atan(y/x) else if x < 0.0 then { r := pi - atan(abs(y/x)) if y >= 0.0 then r else -r } else if x = y = 0.0 then 0.0 # special value if both x and y are zero else if y >= 0.0 then pi/2.0 else -pi/2.0 } end procedure asin(x) if abs(numeric(x)) <= 1.0 then return atan2(x, (1.0-(x^2))^0.5) end procedure acos(x) return 1.570796326794896619231e0 - asin(x) end procedure dtor(deg) return numeric(deg)/57.29577951308232 end procedure rtod(rad) return numeric(rad)*57.29577951308232 end procedure sqrt(x) return (0.0 <= numeric(x)) ^ 0.5 end procedure floor(x) return if numeric(x) then if x>=0.0 | real(x)=integer(x) then integer(x) else -integer(-x+1) end procedure ceil(x) return -floor(-numeric(x)) end procedure log(x) local z, zsq, ex static log2, sqrto2, p0, p1, p2, p3, q0, q1, q2 initial { # The coefficients are #2705 from Hart & Cheney. (19.38D) log2 := 0.693147180559945309e0 sqrto2 := 0.707106781186547524e0 p0 := -0.240139179559210510e2 p1 := 0.309572928215376501e2 p2 := -0.963769093368686593e1 p3 := 0.421087371217979714e0 q0 := -0.120069589779605255e2 q1 := 0.194809660700889731e2 q2 := -0.891110902798312337e1 } if numeric(x) > 0.0 then { ex := 0 while x >= 1.0 do { x /:= 2.0 ex +:= 1 } while x < 0.5 do { x *:= 2.0 ex -:= 1 } if x < sqrto2 then { x *:= 2.0 ex -:= 1 } return ((((p3*(zsq:=(z:=(x-1.0)/(x+1.0))^2)+p2)*zsq+p1)*zsq+p0)/ (((1.0*zsq+q2)*zsq+q1)*zsq+q0))*z+ex*log2 } end procedure exp(x) return 2.718281828459045235360287 ^ numeric(x) end procedure log10(x) return log(x)/2.30258509299404568402 end procedure _sinus(x,quad) local ysq, y, k static twoopi, p0, p1, p2, p3, p4, q0, q1, q2, q3 initial { # Coefficients are #3370 from Hart & Cheney (18.80D). twoopi := 0.63661977236758134308 p0 := 0.1357884097877375669092680e8 p1 := -0.4942908100902844161158627e7 p2 := 0.4401030535375266501944918e6 p3 := -0.1384727249982452873054457e5 p4 := 0.1459688406665768722226959e3 q0 := 0.8644558652922534429915149e7 q1 := 0.4081792252343299749395779e6 q2 := 0.9463096101538208180571257e4 q3 := 0.1326534908786136358911494e3 } if x < 0.0 then { x := -x quad +:= 2 } y := (x *:= twoopi) - (k := integer(x)) if (quad := (quad + k) % 4) = (1|3) then y := 1.0 - y if quad > 1 then y := -y return (((((p4*(ysq:=y^2)+p3)*ysq+p2)*ysq+p1)*ysq+p0)*y) / ((((ysq+q3)*ysq+q2)*ysq+q1)*ysq+q0) end procedure _satan(x) static sq2p1,sq2m1,pio2,pio4 initial { sq2p1 := 2.414213562373095048802e0 sq2m1 := 0.414213562373095048802e0 pio2 := 1.570796326794896619231e0 pio4 := 0.785398163397448309615e0 } return if x < sq2m1 then _xatan(x) else if x > sq2p1 then pio2 - _xatan(1.0/x) else pio4 + _xatan((x-1.0)/(x+1.0)) end procedure _xatan(x) local xsq static p4,p3,p2,p1,p0,q4,q3,q2,q1,q0 initial { # coefficients are #5077 from Hart & Cheney. (19.56D) p4 := 0.161536412982230228262e2 p3 := 0.26842548195503973794141e3 p2 := 0.11530293515404850115428136e4 p1 := 0.178040631643319697105464587e4 p0 := 0.89678597403663861959987488e3 q4 := 0.5895697050844462222791e2 q3 := 0.536265374031215315104235e3 q2 := 0.16667838148816337184521798e4 q1 := 0.207933497444540981287275926e4 q0 := 0.89678597403663861962481162e3 } return x * ((((p4*(xsq:=x^2)+p3)*xsq+p2)*xsq+p1)*xsq+p0) / (((((xsq+q4)*xsq+q3)*xsq+q2)*xsq+q1)*xsq+q0) end From ralph Sat Mar 29 14:27:14 1986 From: "Ralph Griswold" To: icon-group@arizona Subject: Patch for Icon Version 5.9 of Icon under DOS Status: R There is a bug in Version 5.9 of Icon for DOS in the handling of variables returned by procedures. Variables that should be dereferenced are not and vice versa. This bug only causes trouble if the result returned by a procedure is used as a variable, as in p() := 1 Cheyenne Wills has provided the following patch to iconx.exe. The patch hardcodes the actual top of the system stack into the co-expression block for the main procedure (&main). It is suggested that a backup of iconx.exe be made prior to adding the patch. ----PATCH---- ----- Comments ----- rename iconx.exe iconx.dat >> debug can't handle writing back to .exe debug iconx.dat d ds:398 >> should display fe ff e ds:398 5e 57 >> replace fe with 5e and ff with 57 u ds:394 >> mov word ptr [2858],575e w q ---- End of PATCH---- If you should compare (with the DOS COMP command) you should only have two mismatches at offset 298 and 299. | original | patched ---+----------+--------- 298| fe | 5e 299| ff | 57 rename iconx.dat iconx.exe Note that if the .EXE header has been altered (via Microsoft EXEMOD) to increase the system stack size this procedure will not work. From ralph Mon May 19 09:12:44 1986 From: "Ralph Griswold" To: icon-group@arizona Status: R Version 6.0 of Icon for UNIX systems is now available for distribution. Version 6.0 is written entirely in C, except for a small amount of optional machine-dependent code needed for co-expressions and arithmetic overflow checking. It is much more portable than the Version 5 implementation and has been successfully installed on computers ranging from the Amdahl 580 running UTS to the IBM AT running XENIX. The features of Version 6.0 are essentially the same as those of Version 5.10. Version 6.0 requires somewhat more memory than Version 5.10 and may be somewhat slower on some systems. For example, over a wide range of tests on a VAX 8600, Version 6.0 is about 6% slower, on the average, than 5.10. Our future work will be concentrated on Version 6 and Version 5 implementations will no longer be supported. Program material and documentation for Version 6.0 is available without charge. The initial distribution is on magnetic tape. Distribution on 5-1/4" diskettes will be available later and announced separately. To obtain a copy of Version 6.0 Icon, format the t/nroff text following the dashed line using -ms and mail it to us with a tape or a check to cover the cost of a tape, as indicated. -------------------------------------------------------------------- .nr LL 6.5i .ds CF .de LE \l'3.9i' .sp 1 .. .de Ip .IP "\\$1" 25 .LE .. .LP .ce 1 \f3Request for Version 6.0 of Icon\fR .sp 2 .LP \fINote:\fR The distribution package includes a brief description of Icon, installation instructions, and supporting documentation. .sp 2 .Ip name .Ip address .LE .LE .LE .Ip telephone .Ip "electronic mail address" .sp 1 .Ip computers .Ip "operating systems" .sp 1 .LP Tapes are written in 9-track \fIcpio\fR or \fItar\fR format. Specify preferred format and tape recording density: .sp .8 .in .5i \(sq cpio\h'|1.5i'\(sq tar .sp .5 \(sq 6250 bpi\h'|1.5i'\(sq 1600 bpi .sp .8 .in 0 Send this form, together with a magnetic tape (600\(fm is sufficient and preferred) \fIor\fR a check for $25 payable to the University of Arizona, to: .DS .ft R Icon Project Department of Computer Science The University of Arizona Tucson, AZ 85721 .DE From ralph Mon May 26 06:18:16 1986 From: "Ralph Griswold" To: icon-group@arizona Subject: Icon Version 6.0 for VAX/VMS Status: R Version 6.0 of Icon for the VAX running VMS is now available for distribution. Version 6.0 includes a number of features not present in the earlier Version 5.9. Documentation on new features is included with the distribution. This distribution also includes source code, so that sites with C compilers can recompile Icon locally. VMS Icon Version 6.0 was built using VAX C 2.1 under VMS 4.3. We believe that this version will also run under VMS 4.2 but not under VMS 4.1. Program material and documentation for Version 6.0 is available without charge. To obtain a copy of Version 6.0 Icon for VMS, complete the following form and mail it to us with a tape or a check to cover the cost of a tape, as indicated. ----------------------------------------------------------------------- Request for Version 6.0 of Icon for VMS Note: The distribution package includes a brief description of Icon, installation instructions, and supporting documentation. name _______________________________________ address _______________________________________ _______________________________________ _______________________________________ _______________________________________ telephone _______________________________________ electronic mail address _______________________________________ computers _______________________________________ VMS version _______________________________________ Tapes are written in 9-track BACKUP format. Specify preferred tape recording density: [] 6250 bpi [] 1600 bpi Send this form, together with a magnetic tape (600' is sufficient and preferred) or a check for $25 payable to the University of Arizona, to: Icon Project Department of Computer Science The University of Arizona Tucson, AZ 85721 From ralph Mon May 26 10:40:27 1986 From: "Ralph Griswold" To: icon-group@arizona Subject: Icon Version 5.10 on Sun Workstations Status: R There are problems with Version 5.10 of Icon running on Sun Workstations under Version 3.0. While we recommend that all Sun sites switch to Version 6, the following changes should make Version 5.10 work on Sun workstations running Release 3.0. In v5/src/link/builtin.c, lines 33-34, change cmp = strcmp(btable[test], s); if (cmp < 0) to if ((cmp = strcmp(btable[test], s)) < 0) In v5/src/mc68000/params.h, line 16, change the value of StkBase to 0x7fffffff. From whm Tue Jul 29 14:13:23 1986 From: "Bill Mitchell" To: icon-group Subject: Re: WP translations In-Reply-To: <8607292059.AA12138@arizona.arizona.edu> Status: R As a new twist for those of you familiar with mailing lists, here's a message that was sent to the -request address rather than the group (instead of vice-versa!). From FRIENDLY%YORKVM1@WISCVM.WISC.EDU Tue Jul 29 13:59:28 1986 To: icon-group-request%arizona.csnet@csnet-relay.arpa Subject: WP translations This is a practical question which may have some interest to those in the Icon group, concerning translation of text files from one text formatter to another. I have written a book using WordStar on a PC which is to be typeset on a Shafstall phototypesetter using a formatter called XY-Vision. My problem is how to translate about 1 Mbyte of text with WordStar formatting commands to XY-Vision commands, without having to do it all manually. I know that a completely general solution is quite difficult. I'm just looking for ideas that can help ease the pain. Much of the translation can be described by production rules, such as ^S arb ^S --> $f2 arb $f1 ^D arb ^D --> $f3 arb $f1 " arb " --> `` arb '' ' arb ' --> ` arb ' ..IA nl arb --> $h1 arb .IA nl arb --> $h1 arb ..IB nl arb --> $h2 arb etc. .IB nl arb --> $h2 arb etc. where ^c means ASCII control-c, arb is an arbitrary character string, nl is a new line, etc. I have Icon 5.9 on the PC, and from the sample programs it seemed possible to write a translator in Icon. This seems like a problem that someone else must have faced before, so I thought I'd send this query. Any help would be greatly appreciated. Please reply directly to the address below. I will collect any useful replies and repost them to the discussion. -- Snail Mail -- ** E-mail ** Michael Friendly BITNET: FRIENDLY@YORKVM1 Psychology Department Othernet: FRIENDLY@YORKVM1.BITNET York University or FRIENDLY%YORKVM1.BITNET@WISCVM.WISC.EDU Toronto ONT CompuServe: 72777,253 CANADA M3J 1P3 Voice: (416) 736-5118 x6249 *NEW* From whm Thu Aug 28 16:24:08 1986 From: "Bill Mitchell" To: icon-group Subject: Testing Icon-group (#1) Status: R This is a test message. Please ignore this unless you get more than one copy of this message (#1). From whm Thu Sep 25 00:47:05 1986 From: "Bill Mitchell" To: icon-group Subject: Testing Icon-group (#2) Status: R This is a test message. Please ignore this unless you get more than one copy of this message (#2). From gmt Wed Oct 22 08:35:44 1986 From: "Gregg Townsend" To: ralph Subject: atari file structure Cc: icon-group Status: R I was hoping someone would provide a more authoritative answer on this, but here goes: I think the atari does have a hierarchical file structure in the same way the macintosh does, using folders. I don't know what this looks like to the development system (C compiler etc.). The news (this is one sample; it's corroborated by others) indicates a maximum of 40 subdirectories in the entire system: ... >> (2) Much more serious are limitations mentioned in the owners manual; >> in particular, that you should not have more than 40 directories total >> in all partitions and all devices attached to the ST. In article <425@atari.UUcp> neil@atari.UUcp (Neil Harris) writes: >The 40 folder limit is inherent in GEMDOS. This is totally unacceptable. In these enlightened times there are no reasons to have stupid arbitrary limits like 6 desk accessories or 40 folders. Are you saying there is no fix short of new ROMs? ... From gmt Wed Oct 22 08:53:22 1986 From: "Gregg Townsend" To: icon-group Subject: Re: atari file structure (oops) Status: R My previous message was misdirected to this mailing list due to an error on my part. Although it alludes to an earlier message, that message was not broadcast to this group, so don't be alarmed that you missed it. My apologies to anyone who was bewildered. Gregg Townsend From ralph Tue Oct 28 15:51:52 1986 From: "Ralph Griswold" To: icon-group Subject: Version 6 of Icon for MS-DOS Status: R Version 6 of Icon for MS-DOS is now available. It runs on computers with 8086/88/186/286-family processors. IBM hardware compatibility is not necessary. MS- or PC-DOS Version 2.0 or higher is required. There are both small- and large-memory-model implementations. The SMM requires 192 kilobytes of memory, while the LMM requires at least 256 kilobytes. The SMM is faster and more compact than the LMM, but it cannot handle programs that need large amounts of storage. It is inadvisable to run both the SMM and LMM implementations on the same computer because of file nam- ing conflicts. Version 6 of Icon for MS-DOS is distributed on 5-1/4'' 2S/DD diskettes. There are three diskettes available: LMM binary files, SMM binary files, and the Icon program library for Version 6, which is the same for both models. The diskettes are $15 each, which includes media, hardcopy documentation, handling, and ship- ping in the United States and Canada. Add $5 per diskette for air mail overseas. Address orders to Icon Project Department of Computer Science The University of Arizona Tucson, AZ 85721 Orders must be prepaid by check or money order in U.S. dollars. Address questions to the address above or electronically to icon-project@arizona.edu (CSNET) ... ihnp4!arizona!icon-project (UUCPNET) From berry@s1-solaria.arpa Tue Oct 28 19:46:34 1986 From: berry@s1-solaria.arpa To: "Ralph Griswold" Cc: icon-group@arizona.edu Subject: Re: Version 6 of Icon for MS-DOS In-Reply-To: Your message of Tue, 28 Oct 86 15:51:52 MST. <8610282251.AA02707@megaron.arizona.edu> Status: R Thanks for the info; Janalee has already taken care of me! Great service. Now if only I can get ftp to work... --berry