From @s.ms.uky.edu:mtbb95@ms.uky.edu Mon Dec 18 20:11:08 1989
Received: from e.ms.uky.edu by megaron.arizona.edu (5.59-1.7/15) via SMTP
id AA10320; Mon, 18 Dec 89 20:11:08 MST
Received: from s.ms.uky.edu by g.ms.uky.edu id aa11415; 18 Dec 89 22:02 EST
From: Bob Maras <mtbb95@ms.uky.edu>
Date: Mon, 18 Dec 89 22:02:29 EST
X-Mailer: Mail User's Shell (6.4 2/14/89)
To: Kenneth Walker <kwalker@cs.arizona.edu>, icon-group@cs.arizona.edu
Subject: Re: What is ICON?
Message-Id: <8912182202.aa03359@s.s.ms.uky.edu>
Thanks to Ken Walker for a most descriptive summary of the ICON language!!!
Bob
--
_ _
( ) __ ( )
| O O | B O B M A R A S
/ __ \ /
( \/ ) __/
\ \__/ /
\____/
|_/\_| H A P P Y C O M P U T I N G !!!
From mtbb95@ms.uky.edu Mon Dec 18 20:26:14 1989
Received: from RUTGERS.EDU by megaron.arizona.edu (5.59-1.7/15) via SMTP
id AA10713; Mon, 18 Dec 89 20:26:14 MST
Received: from ukma.UUCP by rutgers.edu (5.59/SMI4.0/RU1.3/3.04) with UUCP
id AA21321; Mon, 18 Dec 89 22:25:16 EST
Received: from e.ms.uky.edu by g.ms.uky.edu id aa27894; 19 Dec 89 2:57 GMT
Received: from s.ms.uky.edu by g.ms.uky.edu id aa11391; 18 Dec 89 21:54 EST
From: Bob Maras <mtbb95@ms.uky.edu>
Date: Mon, 18 Dec 89 21:54:08 EST
X-Mailer: Mail User's Shell (6.4 2/14/89)
To: tippy!yorkw@newton.physics.purdue.edu, icon-group@arizona.edu
Subject: Re: What is ICON?
Message-Id: <8912182154.aa02781@s.s.ms.uky.edu>
I have really enjoyed following the developments of the ICON language that
have been shared with the icon-group. I sort of like the request that was
a simple question, "WHAT IS THE ICON LANGUAGE?"
It might be of great value if all group recipients could receive a few statementthat share the similarities as well as the differences ICON has with other
currently used languages, primarily C, but, also pascal, and even perhaps
simpler languages such as BASIC.
I think that some of these introductory messages may serve well in the drawing
of individuals with programming into the group.
Bob
--
_ _
( ) __ ( )
| O O | B O B M A R A S
/ __ \ /
( \/ ) __/
\ \__/ /
\____/
|_/\_| H A P P Y C O M P U T I N G !!!
From icon-group-request@arizona.edu Tue Dec 19 14:24:34 1989
Received: from ucbvax.Berkeley.EDU by megaron.arizona.edu (5.59-1.7/15) via SMTP
id AA08601; Tue, 19 Dec 89 14:24:34 MST
Received: by ucbvax.Berkeley.EDU (5.61/1.40)
id AA03973; Tue, 19 Dec 89 13:03:58 -0800
Received: from USENET by ucbvax.Berkeley.EDU with netnews
for icon-group@arizona.edu (icon-group@arizona.edu)
(contact usenet@ucbvax.Berkeley.EDU if you have questions)
Date: 19 Dec 89 21:03:47 GMT
From: zaphod.mps.ohio-state.edu!uwm.edu!csd4.csd.uwm.edu!corre@tut.cis.ohio-state.edu (Alan D Corre)
Organization: University of Wisconsin-Milwaukee
Subject: Library procedures for MS-DOS
Message-Id: <1569@uwm.edu>
Sender: icon-group-request@arizona.edu
To: icon-group@arizona.edu
By request I am posting the MS-DOS version of the procedures I posted
recently for the Zenith terminal. I have added Chris Tenaglia's input
procedure, and have gilded his lily by offering a variant, inputl, which
insists on a response of a specific length. This can readily be modified
to include other determinants, that the response must be an integer, for
example.
procedure banner(l[])
#Writes to the screen an arbitrary number of strings and encloses them.
local n
write();write();write()
writes(char(201)) #top left right angle
writes(repl(char(205),78)) #straight line
writes(char(187)) #top right right angle
writes(char(186)) #upright line at left
writes(right(char(186),79)) #upright line at right
every n := 1 to *l do {
writes(char(186)) #upright line at left
writes(center(l[n],78),char(186)) #string centered followed by upright line
writes(char(186)) #upright line at left
writes(right(char(186),79)) #upright line at right
}
writes(char(200)) #bottom left right angle
writes(repl(char(205),78)) #straight line
write(char(188)) #bottom right right angle
write()
return
end
procedure instructions(filename)
#writes contents of a file to screen, allows user to stop after any screenful.
local filvar,counter,line
writes("Do you need instructions? y/n ")
if upto('yY',read()) then {
#The following if-statement fails if the file is not available
counter := 0
if filvar := open(filename) then
#Read the help file. It's a good idea to keep this kind of info in a
#separate file because you can modify it easily without redoing the
#program. In general---keep data out of programs!
while line := read(filvar) do {
#Write out a line and increment the counter
write(line)
counter +:= 1
#Now we have a screenful; ask if we should continue
if counter >22 then {
write()
writes ("More? y/n ")
#User has had enough; break out of loop
if upto('nN',read()) then break else
#User wants more; reset counter and continue
counter := 0}} else
#This else goes with the second if-statement; the attempt to open the
#help file failed:
write("Sorry, instructions not available.")}
write ("Press return to continue.")
read()
#Close the file if it existed and was opened. If it was never opened
#the value of filvar will be null. This check has to be made because
#an attempt to use close() on a variable NOT valued at a file would
#cause an error.
/filvar | close(filvar)
end
procedure randomize()
#deletes the colons from the clock time, and uses the resulting number as seed
local clock
clock := &clock
clock[6] := ""
clock[3] := ""
&random := clock
end
procedure clear()
#clears the screen
writes("\e[2J")
end
procedure gotoxy(l,r)
#sets the cursor at line l, row r
writes("\e[",l,";",r,"H")
end
procedure input(s)
#prints the prompt s and returns the user's response
writes(s)
return read()
end
procedure inputl(s,n)
#prints the prompt s, indicates that the response must be n characters
#max, and insists on appropriate response.
local ans
write(s)
writes(n," characters maximum. ")
#if ANSI driver is installed omit initial #-sign in following lines