From crash!kirk.safb.af.mil!BWILLS Thu, 1 Jul 93 07:46:02 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 1 Jul 93 07:46:02 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oBPYK-0000IIC; Thu, 1 Jul 93 07:23 PDT
Message-Id: <m0oBPYK-0000IIC@crash.cts.com>
Date: 30 Jun 93 13:04:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: Sun ain't shinin' (yet)

Anyone know of an Amiga emulator for the Sparc Sun?  Sun used to use the 68030
CPU in their workstations, but now they use a Sparc.  All I really want to do is
get a CLI environment, no Intuition or Graphics, so's I can run EC :)  -- Barry

From crash!sheffield.ac.uk!D.Lamptey Thu, 1 Jul 93 11:48:36 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 1 Jul 93 11:48:36 PST
Received: from sun2.nsfnet-relay.ac.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oBSZX-0000OpC; Thu, 1 Jul 93 10:37 PDT
Received: from ntsc.shef.ac.uk by pp.shef.ac.uk with SMTP (PP) 
          id <08607-0@pp.shef.ac.uk>; Thu, 1 Jul 1993 18:29:02 +0100
Received: from mars.nattrans.COM by ntsc.shef.ac.uk (4.1/Derryck 1.1(mm)) 
          id AA03858; Thu, 1 Jul 93 18:32:21 BST
Received: by mars.nattrans.COM (4.1/Derryck 1.2(sm)) id AA04376;
          Thu, 1 Jul 93 18:35:31 BST
Via: uk.ac.sheffield; Thu, 1 Jul 1993 18:36:55 +0100
Date: Thu, 1 Jul 93 18:35:31 BST
Message-Id: <9307011735.AA04376@ntsc.shef.ac.uk>
From: D.Lamptey@sheffield.ac.uk
To: amigae@bkhouse.cts.com, BWILLS@kirk.safb.af.mil
Subject: Re: Sun ain't shinin' (yet)


Barry,

|
|Anyone know of an Amiga emulator for the Sparc Sun?  Sun used to use the 68030
|CPU in their workstations, but now they use a Sparc.  All I really want to do
| is
|get a CLI environment, no Intuition or Graphics, so's I can run EC :)  -- Barry
|
|

Good news and bad:
	There IS an Amiga Exec/Dos/ etc emulator around.

	Only thing is, I do not know where it is! I think it is in an

	?/amiga/emulators/ directory in an ftp site somewhere, but where?


Derryck.

_____________________________________________________________________

 National Transputer Support Centre,   Derryck Lamptey, MSc(Eng)  
 (University of Sheffield)            (D.Lamptey@sheffield.ac.uk)
 5 Palmerston Road,                    
 Sheffield S10 2TE
 South Yorkshire, U.K.                 Telephone: (+441-742)  768740
                                                  (0742)      768740
 (NTSC@sheffield.ac.uk)
                                       Facsimile: (+441/0)742 727563
    "use e-mail: save a tree"
_____________________________________________________________________

From crash!mars.let.uva.nl!wouter Fri, 2 Jul 93 13:46:51 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 2 Jul 93 13:46:51 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oBr1f-00002YC; Fri, 2 Jul 93 12:44 PDT
Received: by mars.let.uva.nl id AA14561
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Fri, 2 Jul 1993 21:47:25 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Fri, 2 Jul 1993 21:47:25 +0200
Message-Id: <199307021947.AA14561@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: 

[actually two replies]
 
>>    Is there a safe, compatible way to access the Custom chip registers in
>> E?  'C' compilers usually provide an 'extern struct Custom *custom' or some
>> such.  CBM reckon we shouldn't use absolute addresses (except ExecBase) so
>> how do you find the address of the registers?  (I've looked in the Rom Kernel
>> Manuals with no success...)
 
the custom chip base is $DFF000, and there is generally no system-
friendly way to get this value, though next to $4, $DFF000 has been
well accepted as a fixed address, even by commodore (just see the
1.3 hardware-reference manual)
just check hardware/custom.m for the offsets.
 
to be really system friendly however, would be to first get
access through the device/library/resource that handles a certain
register, then start poking. for example, first call OwnBlitter()
before accessing BLTSIZE etc.
 
>>    May I take this opportunity to recommend Wouter's text editor MegaEd for
>> writing code.  It has a number of unique, useful features.  I use it to strip
>> the first 'X' on lines of a shar archive by shifting blocks left!
 
I tried to explain this in a mail some time ago: MegaEd is not as
wonderfull as it may seem from it's endless list of features.
It has some unrepairable bugs that _might_ cause it to crash.
Therefore, I advice to use MegaEd only for small jobs that need
the powerfull text-manipulation features not found in any other editor,
but for regular source editing use another editor.
 
>> ---
>>    _____  _
>>      /   / |    /  /
>>     /   /__/   /__/      Jason R. Hulance
>>    /   /\     /  /   <m88jrh@uk.ac.oxford.ecs>
>> |_/ . /  \ . /  / .
 
---------------
 
>> Anyone know of an Amiga emulator for the Sparc Sun?  Sun used to use the 6803
 
>> CPU in their workstations, but now they use a Sparc.  All I really want to do
is
>> get a CLI environment, no Intuition or Graphics, so's I can run EC :)  -- Bar
y
 
If someone sends me a free 680x0 sun with tech-manuals and a macro assembler,
I'll start porting! :-)
 
Wouter
 
   ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
 / __/    wenn er wahr ist" - Wittgenstein
/___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-

From crash!sirius.UVic.CA!jblake Sun, 4 Jul 93 09:42:17 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sun, 4 Jul 93 09:42:17 PST
Received: from sol.UVic.CA by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oCWO3-0000H7C; Sun, 4 Jul 93 08:53 PDT
Received: from sirius.UVic.CA by sol.UVic.CA (4.1/SMI-4.0.3-UVic-2.43TMX)
	id AA16281; Sun, 4 Jul 93 08:53:51 PDT
Received: from stokes.UVic.CA by sirius.UVic.CA (4.1/SMI-4.1-Engr.UVic.CA-E)
	id AA16326; Sun, 4 Jul 93 08:53:49 PDT
Date: Sun, 4 Jul 93 08:53:49 PDT
Message-Id: <9307041553.AA16326@sirius.UVic.CA>
From: jblake@sirius.UVic.CA (James  Blake)
To: amigae@bkhouse.cts.com
Subject: Using image structure


I am trying to make a bitmap appear on my window.  How I am trying to do 
it is as follows

data:=[ data... lots and lots of data]

im:=[0,0,             
     355,19,          
     2,               
     data,            
     $FF,0,           
     NIL]:PTR TO image

My problem is that the data assign statements is too large and I am
getting an error message:

ERROR: too sizy expression                  
LINE 697: data:=[ /* Plane 0 */ $0078,$0000, ...

I was wondering if there is a way around this, and what is the largest
expression permitted under Amiga E.

Thanks

..james blake

From crash!minyos.xx.rmit.OZ.AU!s924723 Sun, 4 Jul 93 19:42:52 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sun, 4 Jul 93 19:42:52 PST
Received: from peladon.rmit.OZ.AU by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oCg5t-0000RcC; Sun, 4 Jul 93 19:15 PDT
Received: from minyos.xx.rmit.OZ.AU by peladon.rmit.OZ.AU with SMTP id AA16127
  (5.65c/IDA-1.4.4 for <amigae@bkhouse.cts.com>); Mon, 5 Jul 1993 12:15:32 +1000
Received: by minyos.xx.rmit.oz.au
Date: Mon, 5 Jul 93 12:15:34 EST
Message-Id: <9307050215.23331@minyos.xx.rmit.oz.au>
From: s924723@minyos.xx.rmit.OZ.AU (Son Huu Le)
To: amigae@bkhouse.cts.com
Subject: Joystick


Anyone want to access the joystick?

Son Le


PROC main()
DEF joypos, joyx, joyy, firebutton
/*
   $DFF00A (gameport 0) - %xxxxxxxx xxxxxxx fedcba98 76543210
   $DFF00C (gameport 1)

    left  - bit 9    up   - bit 8 xor bit 9,  Eor(bit 8,bit 9)
    right - bit 1    down - bit 0 xor bit 1,  Eor(bit 0,bit 1)

   $BFE001 (gameport fire) - %76543210

    fire gameport 0 - bit 7
    fire gameport 1 - bit 6      (zero-active, ie. 0=pressed)
*/
    WHILE CtrlC()=FALSE
        joypos:=Long($dff00a) AND $FFFF
        firebutton:=Char($bfe001)
        joyx:=joypos AND %11
        joyy:=Shr(joypos,8) AND %11
        IF ((joyx AND %10) = %10) THEN WriteF('right\t')
        IF ((joyy AND %10) = %10) THEN WriteF('left\t')
        IF (joyx = %01) OR (joyx = %10) THEN WriteF('down\t')
        IF (joyy = %01) OR (joyy = %10) THEN WriteF('up\t')

/*        IF Eor(joyx AND %01,Shr(joyx,1)) = 1 THEN WriteF('down\t')
        IF Eor(joyy AND %01,Shr(joyy,1)) = 1 THEN WriteF('up\t')
*/
        IF (firebutton AND %10000000) = 0 THEN WriteF('fire')
        WriteF('                  \b')
    ENDWHILE
ENDPROC

From crash!mars.let.uva.nl!wouter Mon, 5 Jul 93 15:50:22 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 5 Jul 93 15:50:22 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oCz5i-0000NdC; Mon, 5 Jul 93 15:32 PDT
Received: by mars.let.uva.nl id AA20858
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Tue, 6 Jul 1993 00:36:18 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Tue, 6 Jul 1993 00:36:18 +0200
Message-Id: <199307052236.AA20858@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: The future of E

 
                             STATEMENT
 
                       The future of Amiga E
 
                     by Wouter van Oortmerssen
 
The question I get most from programmers is: when will the new version
of E be out, what it will cost and what are it's features? since the
answer is of interest to just about anybody working with E, I'll let
the readers of the amiga E mailing list in on some scoops:
 
I've been working for quite some time now on a new E v2.3, and the
reason I haven't released any 2.2 or 2.3 versions but instead continue
to work on 2.5 is that many new features require other new features,
and thus I'll have to make v2.5 a MAJOR update. Parts of the compiler
have been rewritten and datastructures reorganised for efficiency,
and are not stable enough for release yet. When the new version comes
out, it will be yet another milestone, and again a stable one!
 
The current version betatesters work with is v2.3g, and it already has
the following features:
 
- error reconstruction: EC now exactly pinpoints the character that
  caused the error
- optimisations: EC is now 20% to 70% faster than EC2.1b
- optimisations in code-generation.
- reduction in EC's memory consumption with 40% to 50%
- default arguments a la C++
- kick 3.0 modules
- object inheritance (without methods, for now)
- multiple returnvalues and multiple-value assignments
- symbolhunks for use with profiler
- .o to .m file converter (for assembly)
- numerous small bugs fixed and small enhancements made
 
and most important:
 
- compilation to modules.
  this allows you to write sources with OBJECTs, PROCs and CONSTs in
  them, and have them compiled to a ".m" file for use in other programs.
 
Features that will also be implemented before the next release (v2.5):
- full float (:REAL), 68881/2 support.
- a better version of SrcGen supporting the v2.5 features
- more code generation optimisations
- some 020 support
- vast amount of highlevel modules for all sorts of tasks.
 
Features that I don't know of in which release they'll be implemented:
- other OO features (next to object inheritance)
- source level debugger
- full 020 support
- module caching
 
(and ofcourse MUCH more)
 
 
Last but not least there is the question what 2.5 will cost. Well,
I don't know myself: I'd like to sell it for a very low-profit price
so that everybody can easily affort it. I will keep you all informed.
 
so, I hope all this information gave some of you an insight of what's
coming... reactions of general interest to this list!
and thanks to norm for administrating it!
 
Greetings to you all,
 
Wouter.

From crash!cup.portal.com!RLStockton Mon, 5 Jul 93 21:50:32 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 5 Jul 93 21:50:32 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oD49o-0000NMC; Mon, 5 Jul 93 20:57 PDT
Received: by nova.unix.portal.com (5.65b/4.1 %I%) 
	id AA04392; Mon, 5 Jul 93 21:01:12 -0700
Received: from hobo  by portal.unix.portal.com (%I%) 
	id AA05377; Mon, 5 Jul 93 21:01:11 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA17520; Mon, 5 Jul 93 21:01:10 PDT
Return-Path: <RLStockton@cup.portal.com>
Lines: 20
Date: Mon,  5 Jul 93 21:01:09 PDT
Message-Id: <9307052101.1.16499@cup.portal.com>
X-Origin: The Portal System (TM)
From: RLStockton@cup.portal.com
To: amigae@bkhouse.cts.com
Subject: Re: The future of E

>Last but not least there is the question what 2.5 will cost. Well,
>I don't know myself: I'd like to sell it for a very low-profit price
>so that everybody can easily affort it. I will keep you all informed.
>
>Wouter
>

I would happily pay a reasonable fee for such a well-supported product.

>so, I hope all this information gave some of you an insight of what's
>coming... reactions of general interest to this list!
>and thanks to norm for administrating it!

...and MY thanks as well, Norm.

 - Richard
--------------------------------------------------------------------------
Richard Lee Stockton | bix=rlstockton | internet=rlstockton@cup.portal.com
portal=rlstockton | GEnie=rlstockton | BBS:206-744-1254 = Richard Stockton
--------------------------------------------------------------------------

From crash!cix.compulink.co.uk!mwalter Tue, 6 Jul 93 15:46:12 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 6 Jul 93 15:46:12 PST
Received: from eros.uknet.ac.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oDK2i-0000PVC; Tue, 6 Jul 93 13:55 PDT
Received: from compulink.co.uk by eros.uknet.ac.uk with UUCP 
          id <sg.15302-0@eros.uknet.ac.uk>; Tue, 6 Jul 1993 21:54:41 +0100
Received: from smtpsrvr by cix.compulink.co.uk id aa29213; 6 Jul 93 20:49 GMT
Received: by gonzales.compulink.co.uk. (5.65/25-eef) id AA08461;
          Tue, 6 Jul 93 21:45:08 +0100
Date: Tue, 6 Jul 93 21:45 GMT0BST-1
Reply-To: mwalter@cix.compulink.co.uk
Message-Id: <memo.406310@cix.compulink.co.uk>
From: Michael Walter <mwalter@cix.compulink.co.uk>
To: amigae@bkhouse.cts.com
Cc: mwalter@cix.compulink.co.uk
Subject: The Future of E


>to work on 2.5 is that many new features require other new features,
>and thus I'll have to make v2.5 a MAJOR update. Parts of the compiler

I'm waiting with bated breath.
Having read the list of new stuff, I'm positively drooling :-)

>Last but not least there is the question what 2.5 will cost. Well,
>I don't know myself: I'd like to sell it for a very low-profit price
>so that everybody can easily affort it. I will keep you all informed.

I'm prepared to pay.  I like E.  It makes it possible to knock out a quite
impressive proggy rather easily.  Some things are just right and E is one
of them.  C - who needs it :-)

>so, I hope all this information gave some of you an insight of what's

Thank you for the info.

     Mike  

From crash!prg.oxford.ac.uk!ecs.oxford.ac.uk!m88jrh Wed, 7 Jul 93 01:40:55 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 7 Jul 93 01:40:55 PST
Received: from sun2.nsfnet-relay.ac.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oDUgP-0000MPC; Wed, 7 Jul 93 01:16 PDT
Received: from ecs.oxford.ac.uk (ecs.ecs) by prg.oxford.ac.uk id AA25826;
          Wed, 7 Jul 93 09:16:24 +0100
Received: from ecs.ox.ac.uk (booth11.ecs) by ecs.oxford.ac.uk (4.1/ecs.1) 
          id AA11190; Wed, 7 Jul 93 09:17:16 BST
Received: by ecs.ox.ac.uk (4.1/ecs2.0) id AA00943; Wed, 7 Jul 93 09:16:51 BST
Via: uk.ac.oxford.prg; Wed, 7 Jul 1993 09:16:39 +0100
Date: Wed, 7 Jul 93 09:16:51 BST
Message-Id: <9307070816.AA00943@booth11.ecs.ox.ac.uk>
From: m88jrh@ecs.oxford.ac.uk
To: amigae@bkhouse.cts.com
Subject: Wish list for new Amiga E version...


  I don't know how (or if) I could become a Beta-tester for Wouter, but if I
did I might make the following suggestions:

1) I've tried to write a couple of utilities recently, and I've needed to be
   able to write a PROC which takes its arguments in certain registers (a
   PROC suitable for SetFunction()ing).  I could probably write it in inline
   assembly but I'd much rather not.  Would it be easy to add this feature to
   PROC definitions (like 'C')?

2) Also, a simple E command to preserve/reinstate the registers would be handy.
   Someone will probably suggest a MOVEM command but am I allowed to rely on  
   the stack being in certain states?

3) What about a few options to make a compiled E program detach itself and run
   in the background? (You can use 'runback' utilities but its not ideal.)
   Would it be possible to add support for (checking?) the purity of code? (So
   you know if you can make it a 'resident' program, or even something like
   a handler or library.)

4) On the subject of handlers, is it possible to write one purely in E? (No
   assembly used?)  If so, that would make a really nice example to give away
   in the package (documentation is *so* lacking in CBM's books).  Maybe
   someone could translate Matt Dillon's ram: handler...

5) I'm gald to hear a debugger is on its way.  That was going to be my fifth
   suggestion!

6) What E really needs, though, to make it great is some great documentation.
   E can really be the beginners language because it's very much like Pascal
   or Modula-2, and it compiles **SOOOO**** quickly compared to  most other
   languages.  I am willing to help write such documentation if Wouter would
   like this.  The only thing stopping me helping now is I don't yet feel I
   know enough about the language.

7) Marketing E as a commercial product should be easy (E-zee!).  Get the major
   Amiga mags interested (in the UK at least...) and people should be beating
   a path to your door, Wouter!

Finally, I am extremely impressed with E.  I am even more impressed with the
support which Wouter has been giving.  This language has great possibilities!
It's not the perfect large application development language yet, but it sure
seems like it will be soon.  SAS, Aztec and the others had better watch out.

Thanks, Wouter, for a brilliant piece of programming.

----
   _____  _
     /   / |    /  /
    /   /__/   /__/      Jason R. Hulance
   /   /\     /  /   <m88jrh@uk.ac.oxford.ecs>
|_/ . /  \ . /  / .

From crash!kirk.safb.af.mil!BWILLS Wed, 7 Jul 93 06:02:53 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 7 Jul 93 06:02:53 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oDYk1-0000CHC; Wed, 7 Jul 93 05:36 PDT
Message-Id: <m0oDYk1-0000CHC@crash.cts.com>
Date: 7 Jul 93 07:33:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: re:  The Future of E (with a minor digression)

Here are excerpts from correspondence I'd like to pass on which refer to the
news about the next E upgrade (and a few odds and ends.)  -- Barry

--------------------------------------------------------------------------------

[letter #1]

- error reconstruction: EC now exactly pinpoints the character that
  caused the error
- optimisations: EC is now 20% to 70% faster than EC2.1b
- optimisations in code-generation.
- reduction in EC's memory consumption with 40% to 50%
- default arguments a la C++
- kick 3.0 modules
- object inheritance (without methods, for now)
- multiple returnvalues and multiple-value assignments
- symbolhunks for use with profiler
- .o to .m file converter (for assembly)
- numerous small bugs fixed and small enhancements made

these are all already implemented, that what is yet to come
is also quite stunning
 
this info was supposed to be on the list soon, just wait and see.
 
>> Oh, one more thing I was interested in seeing implemented:  initialization of
>> variables at time of declaration, like:
>>   DEF ptr : PTR TO CHAR = NIL  /* gives me 'Superfluous items' message */
 
you don't need 2.5 for this, try in v2.1b:
 
DEF ptr = NIL : PTR TO CHAR
 
works for constants only. isn't this in the manual?
 
--------------------------------------------------------------------------------

[letter #2]

>> Hi, Wouter.  I could not find reference to "DEF mypointer=NIL:PTR TO somethin
g
>> in the manuals.  I resorted to the examples, though, and found just such an
>> animal.  It was in a number of 2.0-only examples which I didn't bother readin 
g
>> 'cause I only got 1.3 (but not for long, heh-heh, 2.1 is in the mail and on c
ourse
>> to my home; yip-yip-yipee!  Now all I need is another hard drive, a younger
>> mouse and joystick, an optical scanner, an 8 or 16 meg simm, a few more
>> references, and a bigger room! :)
 
yeah ok... stick with 2.1 for now, and you'll be more than happy
 
>> So that's two undocumented features:  StringF() and variable initialization.
>> (Just in case you want to keep track :)
 
oh yes. I'm making notes of these for the new manual.
 
>> I perused again and again your recent messages concerning E V2.5.  I'll tell
>> you, I'm really anticipating the release!  It all looks fantastic, and you sa
y 
>> there're more goodies!  Well, I'm saving my pennies, so you can rest assured
>> that you'll have at least one customer.
 
good!
I'm implementing features now faster than you can say "E": just
made "multiple return values" possible. very special.
 
--------------------------------------------------------------------------------

[letter #3]

>> >yeah ok... stick with 2.1 for now, and you'll be more than happy
>> 
>> Little choice since money is limited, and my resources for the near future
>> are tied up in an up and coming release of a programming language by some
>> supernatural developer :)
 
huh? what? where? :-)
 
>> >I'm implementing features now faster than you can say "E": just
>> >made "multiple return values" possible. very special.
>> 
>> Good God, man!  Is there no end to the madness?!  E-E-E-E-E-E-E-E-E.....!

[editor's note:  I figured this would give Wouter time to implement at least
15 more features :) ]

there's no end yet. there are some limits in language design, but
as far as I'm going to take it, it will be ashtonishing.
today I think I might give it a shot at full OO. dunno.
 
things are getting weirder every day. did I tell you that
someone wants to graduate (write last thesis on university)
on the subject of "E"? and _I_ didn't even manage to do so!
 
>> >- optimisations: EC is now 20% to 70% faster than EC2.1b
>> 
>> How on earth is this possible?!  With less memory consumption, no less!  Very
>> impressive!
 
I applied some very heavy duty hashing techniques, and did some other
hardcore optimising. some parts in v2.1b really were slow (not that anybody
did notice)
 
>> >- 68881/2 support.
>> >- some 020 support
>> >- vast amount of highlevel modules for all sorts of tasks.
>> 
>> Unexpected, but certainly a centrifugal surprise! :)
>> 
>> >- other OO features (next to object inheritance)
>> 
>> Is EC gonna be smart enough to tell whether you want small fast procedural co
de
>> or big luxurious objects with methods?  I know my C++ compiler is a hog,
>> regardless of whether I want to use OOP or not :(
 
um, say you write OO-less code, i.e. PROCs + OBJECTs without methods,
the code will be as good as that of ec21b, and probably better.
if you heavily use methods, you're bound to lose some speed,
but in most cases this is very little.
 
>> >- module caching
>> 
>> What is this?  Like '030/'040 instruction caching?
 
nope. it's more like an "emodule.library" that hangs around in your
system. say you have a gui-app that needs 10 modules. first time
EC compiles them, they're all loaded from disk, second time, they're
ALL directly available to EC. the library automatically flushes the
modules it's loading when memory gets low. result: even for giant
applications >100k, compile and link times can be kept <1sec.
 
>> >coming... reactions of general interest to this list!
>> 
>> I believe you already know my reaction.  *standing ovation*
 
you should then say so on the list, shouldn't you?
 
--------------------------------------------------------------------------------

[this letter]

So I'll say it again:  *standing ovation!!!*  What I've heard from a lot of you
confirms my own opinion of E.  When I first got hold of E, it sat on a floppy
for about 3 weeks until I got around to looking at it.  "Yeah, yeah," I said,
"another PD programming language."  See, I was jaded by this time, being unable
to find a language appealing enough and reliable enough.  Being a big fan of
C++, I tried Lattice C++ (at $225!) and found it to be flakey.  I read about
the compiler's features which concluded, "If these features haven't made you
anxious to use E, I suggest you testdrive the compiler after reading this doc
to "feel the power" yourself."  Some boast!  I had to take the challenge. 
Well, I liked it enough to give up my current project in C++ at the time, 
Fill - The Smart File Mover/Copier, and write it in E.  Then I decided to write
EPP - an E Preprocessor, because I could see that major hole right away, no
user modules; and I expected a long wait for the arrival of modules in the 
language.  Well, I should have expected different, considering the speed of the
compiler, the speed of response to my questions, and the personal interaction 
Wouter has given us :)  I *was* a big fan of C and C++, but E V2.1b (BETA!) was
far more wieldy, and more reliable.  And the user support has been incredible. 
Sometimes I suspect there is more than one Wouter (more like 7 or 8, is that
your secret? :)  I can't wait patiently for V2.5 to arrive!  But wait I will,
chomping at the bit.

-- Barry

From crash!kirk.safb.af.mil!BWILLS Wed, 7 Jul 93 09:46:15 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 7 Jul 93 09:46:15 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oDcC6-0000YMC; Wed, 7 Jul 93 09:18 PDT
Message-Id: <m0oDcC6-0000YMC@crash.cts.com>
Date: 7 Jul 93 11:13:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: chip request

 Wouter,

Could you/would you implement some kind of directive that forces data to be
placed in chip ram, like the Lattice C "chip" storage class specifier?

-- Barry

From crash!mars.let.uva.nl!wouter Wed, 7 Jul 93 21:58:37 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 7 Jul 93 21:58:37 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oDlgN-00009vC; Wed, 7 Jul 93 19:25 PDT
Received: by mars.let.uva.nl id AA28449
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Thu, 8 Jul 1993 04:29:27 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Thu, 8 Jul 1993 04:29:27 +0200
Message-Id: <199307080229.AA28449@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: about improvement suggestions

>>   I don't know how (or if) I could become a Beta-tester for Wouter, but if I
>> did I might make the following suggestions:
>> 
>> 1) I've tried to write a couple of utilities recently, and I've needed to be
>>    able to write a PROC which takes its arguments in certain registers (a
>>    PROC suitable for SetFunction()ing).  I could probably write it in inline
>>    assembly but I'd much rather not.  Would it be easy to add this feature to
>>    PROC definitions (like 'C')?
 
see #4
 
>> 2) Also, a simple E command to preserve/reinstate the registers would be hand

From crash!mars.let.uva.nl!wouter Wed, 7 Jul 93 21:58:39 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 7 Jul 93 21:58:39 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oDliv-00009vC; Wed, 7 Jul 93 19:28 PDT
Received: by mars.let.uva.nl id AA28485
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Thu, 8 Jul 1993 04:32:05 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Thu, 8 Jul 1993 04:32:05 +0200
Message-Id: <199307080232.AA28485@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: about improvement suggestions

>>   I don't know how (or if) I could become a Beta-tester for Wouter, but if I
>> did I might make the following suggestions:
>> 
>> 1) I've tried to write a couple of utilities recently, and I've needed to be
>>    able to write a PROC which takes its arguments in certain registers (a
>>    PROC suitable for SetFunction()ing).  I could probably write it in inline
>>    assembly but I'd much rather not.  Would it be easy to add this feature to
>>    PROC definitions (like 'C')?
 
see #4
 
>> 2) Also, a simple E command to preserve/reinstate the registers would be hand
 
>>    Someone will probably suggest a MOVEM command but am I allowed to rely on 
 
>>    the stack being in certain states?
 
before or after a piece of inline assembly you may safely use a movem
to save registers. (this is really only needed for a4/a5).
I don't think a special command for this is needed.
 
>> 3) What about a few options to make a compiled E program detach itself and ru
 
>>    in the background? (You can use 'runback' utilities but its not ideal.)
 
I have this on my "TODO" list.
 
>>    Would it be possible to add support for (checking?) the purity of code? (S
 
>>    you know if you can make it a 'resident' program, or even something like
>>    a handler or library.)
 
executables as produced by EC are PURE. one of the only things I can
think of that could make it "unpure" are lists with anything other than
constant values in them, like [a,b+1,fun()]
 
>> 4) On the subject of handlers, is it possible to write one purely in E? (No
>>    assembly used?)  If so, that would make a really nice example to give away
>>    in the package (documentation is *so* lacking in CBM's books).  Maybe
>>    someone could translate Matt Dillon's ram: handler...
 
these features all boil down to low-level support for own libraries,
devices and handlers, new tasks, hooks etc. I'm working on making some
of this possible in 2.5, the registers might have to wait till later,
simply because there are nicer things higher up my list :-)
 
>> 5) I'm gald to hear a debugger is on its way.  That was going to be my fifth
>>    suggestion!
 
don't know yet in what form, but it's heavily needed. probably something
very unorthodox like a runtime source-level debugger
 
>> 6) What E really needs, though, to make it great is some great documentation
 
agreed.
 
>>    E can really be the beginners language because it's very much like Pascal
 
I disagree. Don't let syntax deceive you. Ok, that makes it all very
readable but:
- when it comes to semantics (workings/meanings of programming constructs),
  E is much closer to C/C++ than to Pascal/Modula2
- once you know E, it lets you implement ideas much faster than in traditional
  languages, which would give the impression that E is appropriate for
  beginners, but E's low-level nature and type-system require a quite
  serious knowledge of pointers etc., which could frustrate the beginner.
  A language suited for beginners would either make dangerous use of
  pointers impossible (like Pascal) or don't provide such features at all.
 
>>    or Modula-2, and it compiles **SOOOO**** quickly compared to  most other
>>    languages.  I am willing to help write such documentation if Wouter would
 
I already have somebody that wants to write a decent manual/tutorial,
but if you feel you have concrete ideas of how you could help out,
mail me.
 
>>    like this.  The only thing stopping me helping now is I don't yet feel I
>>    know enough about the language.
>> 
>> 7) Marketing E as a commercial product should be easy (E-zee!).  Get the majo
 
>>    Amiga mags interested (in the UK at least...) and people should be beating
>>    a path to your door, Wouter!
 
um, maybe. I had almost finally decided to bring out 2.5 myself just
to be independend of a company's demands, and to keep the price low,
but I've decide to maybe give some serious company a chance.
suggestions anyone?
 
>> Finally, I am extremely impressed with E.  I am even more impressed with the
>> support which Wouter has been giving.  This language has great possibilities!
>> It's not the perfect large application development language yet, but it sure
>> seems like it will be soon.
 
count on it. with 2.1 you were flabbergasted at it's compile speed, now
with 2.5 get knocked out of your socks at the speed it links large
multi-module apps together.
 
>> SAS, Aztec and the others had better watch out.
 
don't make yourself any illusions. C is so deep rooted everywhere that
it (and it's descendants like C++) will be used heavily for a long time
(which doesn't mean of course we can't be making life better with
alternatives like E!)
 
>> Thanks, Wouter, for a brilliant piece of programming.
 
anytime!
 
>> ----
>>    _____  _
>>      /   / |    /  /
>>     /   /__/   /__/      Jason R. Hulance
>>    /   /\     /  /   <m88jrh@uk.ac.oxford.ecs>
>> |_/ . /  \ . /  / .
>> 
 
Wouter
 
   ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
 / __/    wenn er wahr ist" - Wittgenstein
/___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-

From crash!mars.let.uva.nl!wouter Wed, 7 Jul 93 21:58:42 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 7 Jul 93 21:58:42 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oDljX-0000UEC; Wed, 7 Jul 93 19:29 PDT
Received: by mars.let.uva.nl id AA28489
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Thu, 8 Jul 1993 04:32:43 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Thu, 8 Jul 1993 04:32:43 +0200
Message-Id: <199307080232.AA28489@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: misc

>> Here are excerpts from correspondence I'd like to pass on which refer to the
>> news about the next E upgrade (and a few odds and ends.)  -- Barry
 
hey barry, the bit below about "say so on the list" was a reaction to
your reaction on "reactions of general interest to this list!", not
a recommendation to start literally copy my mails. do you make a habit
out of doing this? not that it contains anything secret, but you should
be more carefull about what you pass on.
 
>> [large amount of recent mail removed]
>> 
>> So I'll say it again:  *standing ovation!!!*  What I've heard from a lot of y
u
>> confirms my own opinion of E.  When I first got hold of E, it sat on a floppy
>> for about 3 weeks until I got around to looking at it.  "Yeah, yeah," I said,
>> "another PD programming language."  See, I was jaded by this time, being unab
e
>> to find a language appealing enough and reliable enough.  Being a big fan of
>> C++, I tried Lattice C++ (at $225!) and found it to be flakey.  I read about
>> the compiler's features which concluded, "If these features haven't made you
>> anxious to use E, I suggest you testdrive the compiler after reading this doc
>> to "feel the power" yourself."  Some boast!  I had to take the challenge. 
>> Well, I liked it enough to give up my current project in C++ at the time, 
>> Fill - The Smart File Mover/Copier, and write it in E.  Then I decided to wri
e
>> EPP - an E Preprocessor, because I could see that major hole right away, no
>> user modules; and I expected a long wait for the arrival of modules in the 
>> language.  Well, I should have expected different, considering the speed of t
e
>> compiler, the speed of response to my questions, and the personal interaction
 
>> Wouter has given us :)  I *was* a big fan of C and C++, but E V2.1b (BETA!) w
s
>> far more wieldy, and more reliable.  And the user support has been incredible
>> Sometimes I suspect there is more than one Wouter (more like 7 or 8, is that
>> your secret? :)
 
yes indeed, I've got a large company of 47 people working for me 24 hours
a day with as their sole task writing compilers for weird languages I create.
No seriously, I does cost an incredible amount of time, especially now
while I'm working on 2.5, but it's worth it.
 
>> I can't wait patiently for V2.5 to arrive!  But wait I will,
>> chomping at the bit.
>> 
>> -- Barry
 
>>  Wouter,
>> 
>> Could you/would you implement some kind of directive that forces data to be
>> placed in chip ram, like the Lattice C "chip" storage class specifier?
>> 
>> -- Barry
 
I probably could, but I find it a very ugly idea. small chipdata can always
be copied to chip after a program start (spritedata etc.). if the amount
of data is that large that it would be a waiste of memory to copy it,
(pictures, samples etc.) it shouldn't be _in_ the program in the first place,
but rather in a seperate file and read directly into chipram.
 
Wouter
 
   ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
 / __/    wenn er wahr ist" - Wittgenstein
/___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-

From crash!minyos.xx.rmit.OZ.AU!s924723 Thu, 8 Jul 93 09:57:24 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 8 Jul 93 09:57:24 PST
Received: from peladon.rmit.OZ.AU by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oDsLV-0000FgC; Thu, 8 Jul 93 02:32 PDT
Received: from minyos.xx.rmit.OZ.AU by peladon.rmit.OZ.AU with SMTP id AA16368
  (5.65c/IDA-1.4.4 for <amigae@bkhouse.cts.com>); Thu, 8 Jul 1993 19:32:48 +1000
Received: by minyos.xx.rmit.OZ.AU
Date: Thu, 8 Jul 93 19:32:40 EST
Message-Id: <9307080932.17021@minyos.xx.rmit.OZ.AU>
From: s924723@minyos.xx.rmit.OZ.AU (Son Huu Le)
To: amigae@bkhouse.cts.com
Subject: WishList


Since everyone's posting their wish list for E, I thought I'd add mine.
Actually, I only have one. (;

Inline code optimizer! (Or at least registerized variables)

Why? I've coded a couple of utils lately and to put E to the test, I ported
it to SAS/C. Even though E produced smaller codes in all cases, this did not
necessarily mean a quicker program. On the contrary, E was clock on one
program as twice as slow! The only way I could go faster was by assembly
coding the heavy routines myself. (Parameters on registers would be nice).

Kinda like a global optimizer for E.

Bye.. Son Le

From crash!splat.aarnet.edu.au!DCAmiga Fri, 9 Jul 93 03:47:17 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 9 Jul 93 03:47:17 PST
Received: from brolga.cc.uq.oz.au by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oEFmy-0000iCC; Fri, 9 Jul 93 03:34 PDT
Received: from splat.aarnet.edu.au by brolga.cc.uq.oz.au with SMTP (PP);
          Fri, 9 Jul 1993 20:09:21 +1000
Received: by splat.aarnet.edu.au (4.1/SMI-4.1) id AA03042;
          Fri, 9 Jul 93 20:08:59 EST
Date: Fri, 9 Jul 1993 19:57:32 +1000 (EST)
In-Reply-To: <199307052236.AA20858@mars.let.uva.nl>
Message-Id: <Pine.3.07.9307091923.A3022-b100000@splat>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
From: DCAmiga <DCAmiga@splat.aarnet.edu.au>
To: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
Cc: amigae@bkhouse.cts.com
Subject: Re: The future of E



On Tue, 6 Jul 1993, Wouter van Oortmerssen wrote:

> The current version betatesters work with is v2.3g, and it already has
> the following features:
>  
> - error reconstruction: EC now exactly pinpoints the character that
>   caused the error
> - optimisations: EC is now 20% to 70% faster than EC2.1b
> - optimisations in code-generation.
> - reduction in EC's memory consumption with 40% to 50%
> - default arguments a la C++
> - kick 3.0 modules
> - object inheritance (without methods, for now)
> - multiple returnvalues and multiple-value assignments
> - symbolhunks for use with profiler
> - .o to .m file converter (for assembly)
> - numerous small bugs fixed and small enhancements made
>  
> - compilation to modules.
>  
> Features that will also be implemented before the next release (v2.5):
> - full float (:REAL), 68881/2 support.
> - a better version of SrcGen supporting the v2.5 features
> - more code generation optimisations
> - some 020 support
> - vast amount of highlevel modules for all sorts of tasks.
>  
> Features that I don't know of in which release they'll be implemented:
> - other OO features (next to object inheritance)
> - source level debugger
> - full 020 support
> - module caching
>  
> (and ofcourse MUCH more)
>  

	Wouter,
		All of these things sound very interesting and I can't
wait to see them, but one thing I really want is linkable object output so
that I can link E code to C and ASM object files.  Will this be
implemented soon?

Another thing which worries me a bit is the self-modifying code in the
compiler and in the executables it generates.  (Although everything seems
to work on my '040 okay with copyback on.)

Thanks - Andrew Dunbar.



From crash!mars.let.uva.nl!wouter Fri, 9 Jul 93 15:40:55 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 9 Jul 93 15:40:55 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oEPKZ-0000RIC; Fri, 9 Jul 93 13:46 PDT
Received: by mars.let.uva.nl id AA17650
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Fri, 9 Jul 1993 22:49:37 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Fri, 9 Jul 1993 22:49:37 +0200
Message-Id: <199307092049.AA17650@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: register allocation

>> Since everyone's posting their wish list for E, I thought I'd add mine.
 
some people are taking the "Public Domain" image of E too literally :-)
 
>> Actually, I only have one. (;
>> Inline code optimizer! (Or at least registerized variables)
>> 
>> Why? I've coded a couple of utils lately and to put E to the test, I ported
>> it to SAS/C. Even though E produced smaller codes in all cases, this did not
>> necessarily mean a quicker program. On the contrary, E was clock on one
>> program as twice as slow!
 
this isn't necessarily because of register variables: I have examples
where C code with register variables is a few times slower than E code
without. It could very well be that you're using un-optimal constructs
in E: send them to me, and I'll tell you if it can be done faster.
 
>> The only way I could go faster was by assembly
>> coding the heavy routines myself. (Parameters on registers would be nice).
 
oh yes that would be usefull. even register variables could be nice
in E, I have it on my "TODO" list for a later version.
 
>> Kinda like a global optimizer for E.
>> 
>> Bye.. Son Le
>> 
 
Wouter
 
   ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
 / __/    wenn er wahr ist" - Wittgenstein
/___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-

From crash!mars.let.uva.nl!wouter Fri, 9 Jul 93 15:40:58 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 9 Jul 93 15:40:58 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oEPL5-000096C; Fri, 9 Jul 93 13:46 PDT
Received: by mars.let.uva.nl id AA17655
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Fri, 9 Jul 1993 22:50:09 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Fri, 9 Jul 1993 22:50:09 +0200
Message-Id: <199307092050.AA17655@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: object files

>> On Tue, 6 Jul 1993, Wouter van Oortmerssen wrote:
>> 
>> > [part of E statement]
>> 
>>         Wouter,
>>                 All of these things sound very interesting and I can't
>> wait to see them, but one thing I really want is linkable object output so
>> that I can link E code to C and ASM object files.  Will this be
>> implemented soon?
 
as was listed in the E statement, there will be a utility that
allows you to convert a .o file to a .m file, but this is mainly
targeted towards .o files produced by a macro assembler, rather
than a C compiler. the reason for this is that anything but trivial
C code depends on C initialisation code (c.o), which is ofcourse
not provided by the the E initialisation code.
 
>> Another thing which worries me a bit is the self-modifying code in the
>> compiler and in the executables it generates.  (Although everything seems
>> to work on my '040 okay with copyback on.)
 
???? both the compiler and the generated code do not have _ANY_ self
modifying code in them, and are 100% 040 compatible, also in
copyback mode. on what facts do you base this nonsense?
 
>> Thanks - Andrew Dunbar.
>> 
 
Wouter
 
   ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
 / __/    wenn er wahr ist" - Wittgenstein
/___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-

From crash!sheffield.ac.uk!D.Lamptey Sat, 10 Jul 93 00:40:45 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sat, 10 Jul 93 00:40:45 PST
Received: from sun2.nsfnet-relay.ac.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oEZS8-0000kdC; Sat, 10 Jul 93 00:34 PDT
Received: from ntsc.shef.ac.uk by pp.shef.ac.uk with SMTP (PP) 
          id <10631-0@pp.shef.ac.uk>; Sat, 10 Jul 1993 08:27:36 +0100
Received: from mars.nattrans.COM by ntsc.shef.ac.uk (4.1/Derryck 1.1(mm)) 
          id AA05515; Sat, 10 Jul 93 08:31:36 BST
Received: by mars.nattrans.COM (4.1/Derryck 1.2(sm)) id AA05373;
          Sat, 10 Jul 93 08:34:59 BST
Via: uk.ac.sheffield; Sat, 10 Jul 1993 08:33:01 +0100
Date: Sat, 10 Jul 93 08:34:59 BST
Message-Id: <9307100734.AA05373@ntsc.shef.ac.uk>
From: D.Lamptey@sheffield.ac.uk
To: amigae@bkhouse.cts.com
Subject: Re: Wish list for new Amiga E version...

In response to point 7 of Jason's wishlist.
|
| Marketing E as a commercial product should be easy (E-zee!).  Get the major
|   Amiga mags interested (in the UK at least...) and people should be beating
|   a path to your door, Wouter!
|

Amiga Shopper (U.K.) is interested in E. I am in regular contact with the 
editor, (almost daily) and I had promised an article for an issue of Amiga
Shopper.

At this point I ask anyone who wishes to collaborate on such an article to
contact me. (Someone with strong journalistic ambitions could write most/all
of it would not be frowned on either.)

Derryck

From crash!minyos.xx.rmit.OZ.AU!s924723 Sat, 10 Jul 93 09:40:54 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sat, 10 Jul 93 09:40:54 PST
Received: from peladon.rmit.OZ.AU by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oEgKX-0000DuC; Sat, 10 Jul 93 07:55 PDT
Received: from minyos.xx.rmit.OZ.AU by peladon.rmit.OZ.AU with SMTP id AA05244
  (5.65c/IDA-1.4.4 for <amigae@bkhouse.cts.com>); Sun, 11 Jul 1993 00:55:07 +1000
Received: by minyos.xx.rmit.OZ.AU
Message-Id: <9307101455.11858@minyos.xx.rmit.OZ.AU>
Date: Sun, 11 Jul 1993 00:55:07 +1000 (EST)
X-Mailer: ELM [version 2.4 PL22]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 3652
From: s924723@minyos.xx.rmit.OZ.AU (Son Huu Le)
To: amigae@bkhouse.cts.com
Subject: Slow E example

Forwarded message:
 From MAILER-DAEMON Sat Jul 10 12:16:53 1993
Date: Sat, 10 Jul 93 12:16:30 EST
From: MAILER-DAEMON (Mail Delivery Subsystem)
Subject: Returned mail: Service unavailable
Message-Id: <9307100216.24669@minyos.xx.rmit.OZ.AU>
To: s924723

   ----- Transcript of session follows -----
>>> DATA
<<< 554 <Wouter@alt.let.uva.nl>... 550 Host unknown (Authoritative answer from name server)
554 Wouter@alt.let.uva.nl... Service unavailable

   ----- Unsent message follows -----
Received: by minyos.xx.rmit.OZ.AU 
Date: Sat, 10 Jul 93 12:16:30 EST
From: s924723 (Son Huu Le)
Message-Id: <9307100216.24669@minyos.xx.rmit.OZ.AU>
To: Wouter@alt.let.uva.nl
Subject: Slow_E


Okay. Here's the slow E port of boyerm.c - It's been stripped of the
non-essential routines and has a few features hard-coded (laziness, I know :)
Basically it searches my Aminet catalogue for Toolmanager2.0 (there's only
one entry) using Boyer-Moore string search. I compiled practically the same
code in C format (of coz) using SAS/C v6.3 and the results were something
like 30secs for SAS/C and 60 secs for E.

Any help much appreciated.

Son Le

PS. Another idea would be to include a set of standard functions with E for
basic functions like atoi, islower, etc. And also about the .o files, how
about mimicking c.o with e.o?

/* boyerm - find lines containing given constant string       */
/* A. Kotanski, 1989                                          */
/* For explanation of the method see the following articles : */
/* R.S.Boyer, J.S. Moore, "A fast string search algorithm"    */
/*                        Comm. ACM 20, 762-772 (1977)        */
/* D.E.Knuth, J.H.Morris and V.B.Pratt                        */
/*                        "Fast pattern matching in strings"  */
/*                        SIAM J. Computing, 6, 323-350 (1977)*/

CONST UPPER=255

DEF except = 0, number = 0, ppos = 1, patlen, stringlen, c,
    delta0[128]:STRING, delta2[80]:STRING, string[256]:STRING,
    pat[80]:STRING, f[80]:STRING

PROC max(a,b) RETURN (IF a>b THEN a ELSE b)
PROC min(a,b) RETURN (IF a>b THEN b ELSE a)

PROC boyer()
DEF i, j

   IF ( (i := patlen + ppos - 2) >= stringlen ) THEN RETURN 0
   LOOP
      WHILE ( (i := i + delta0[string[i]]) < stringlen ) DO NOP
      IF ( i < UPPER ) THEN RETURN 0
      i := i - (UPPER + 1)
      IF ( (j := patlen - 2) < 0 ) THEN RETURN (i + 2)
      WHILE ( string[i] = pat[j] )
         i--
         IF ( j-- < 0 ) THEN RETURN (i + 2)
      ENDWHILE
      IF ( string[i] = pat[patlen-1] )
         i := i + delta2[j]
      ELSE
         i := i + max(delta0[string[i]], delta2[j])
      ENDIF
      IF CtrlC()=TRUE THEN Raise(0)
   ENDLOOP
ENDPROC

PROC main() HANDLE  /* find pattern from first argument */
DEF lineno = 0, match, i, t, fh

   IF (fh := Open (arg,OLDFILE))=NIL
      WriteF('Open error\n')
      CleanUp(0)
   ENDIF
   StrCopy(pat,'ToolManager2.0',ALL)

   patlen := StrLen(pat)

   FOR i := 0 TO 127 DO delta0[i] := patlen
   FOR i := 0 TO patlen-1 DO delta0[pat[i]] := patlen - i - 1

   delta0[pat[patlen - 1]] := UPPER

   FOR i := 0 TO patlen-1 DO delta2[i] := patlen + patlen - i - 1

   i := patlen - 1
   t := patlen
   WHILE ( i >= 0 )
      f[i] := t
      WHILE ( ( t < patlen ) AND ( pat[i] <> pat[t] ) ) 
         delta2[t] := min(delta2[t], patlen-i-1)
         t := f[t]
      ENDWHILE
      t--
      i--
   ENDWHILE
   FOR i := 0 TO t DO delta2[i] := min(delta2[i], patlen + t - i)

   WHILE Fgets(fh, string, 256)
      lineno++
      stringlen := StrLen(string)
      match := boyer()
      IF match THEN WriteF('\s',string)
   ENDWHILE
   Raise(0)
EXCEPT
   IF fh THEN Close(fh)
ENDPROC



From crash!kirk.safb.af.mil!BWILLS Sun, 11 Jul 93 09:40:51 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sun, 11 Jul 93 09:40:51 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oF2pk-00016tC; Sun, 11 Jul 93 07:56 PDT
Message-Id: <m0oF2pk-00016tC@crash.cts.com>
Date: 11 Jul 93 09:52:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: Processor Ids

Here's something I cooked up to help my startup-sequence in deciding which
startup to run based on the processor I booted with (Derringer-030 uses 68000
and 68030).  It also checks for FPU and MMU just for the heck of it.
----- CUT HERE ----------------------------------------------------------------
/*
  IdentifyProcessors - For AmigaDOS V1.3 (and higher?)
  Author:  Barry Wills

  Program to place the values of the current processor ids in the
  environment.  The following environment variables will receive the
  appropriate string values, and can be used in scripts:

  $CPU - 68040
         68030
         68020
         68010
         68000
  $FPU - 68882
         68881
         NIL     (usage:  IF "$FPU" eq "")
  $MMU - 68851
         NIL     (usage:  IF "$MMU" eq "")


  Configuration Notes (add your config and results here)
  ~~~~~~~~~~~~~~~~~~~
  KS1.3: - 68000/""/""       == correct values reflected
           68030/68881/68851 == (Derringer-030)  MMU not recognized


  Rights and Restrictions
  ~~~~~~~~~~~~~~~~~~~~~~~
  This program is hereby placed in the public domain.  The reader/user of
  this program assumes all risk.

*/


MODULE 'exec/types'
MODULE 'exec/execbase'
MODULE 'dos/dos'

DEF ver = NIL

PROC main ()
  DEF execBase : PTR TO execbase,
      attnFlag,
      processor,
      fh

   ver := 'VER$: PROCs V1.0 (10JUL93)'

   execBase := execbase
   attnFlag := execBase.attnflags

   /*-----------------*/
   /* Check CPU type. */
   /*-----------------*/

   IF attnFlag AND AFF_68040
     processor := '68040'
   ELSEIF attnFlag AND AFF_68030
     processor := '68030'
   ELSEIF attnFlag AND AFF_68020
     processor := '68020'
   ELSEIF attnFlag AND AFF_68010
     processor := '68010'
   ELSE
     processor := '68000'
   ENDIF

   IF (fh := Open ('ENV:CPU', NEWFILE)) = NIL THEN RETURN RETURN_FAIL
   Write (fh, processor, 5)
   Close (fh)

   /*----------------*/
   /* Check for FPU. */
   /*----------------*/

   IF attnFlag AND AFF_68881
     processor := '68881'
   ELSEIF attnFlag AND AFF_68882
     processor := '68882'
   ELSE
     processor := NIL
   ENDIF

   IF (fh := Open ('ENV:FPU', NEWFILE)) = NIL THEN RETURN RETURN_FAIL
   IF processor THEN Write(fh, processor, 5)
   Close (fh)

   /*----------------*/
   /* Check for MMU. */
   /*----------------*/

   IF attnFlag AND AFF_68851_MMU
     processor := '68851'
   ELSE
     processor := NIL
   ENDIF

   IF (fh := Open ('ENV:MMU', NEWFILE)) = NIL THEN RETURN RETURN_FAIL
   IF processor THEN Write (fh, processor, 5)
   Close (fh)

ENDPROC  0

From crash!mars.let.uva.nl!wouter Sun, 11 Jul 93 15:41:14 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sun, 11 Jul 93 15:41:14 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oF9uK-00000DC; Sun, 11 Jul 93 15:30 PDT
Received: by mars.let.uva.nl id AA01686
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Mon, 12 Jul 1993 00:33:36 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Mon, 12 Jul 1993 00:33:36 +0200
Message-Id: <199307112233.AA01686@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: comparing E and C code

>> Okay. Here's the slow E port of boyerm.c - It's been stripped of the
>> non-essential routines and has a few features hard-coded (laziness, I know :)
>> Basically it searches my Aminet catalogue for Toolmanager2.0 (there's only
>> one entry) using Boyer-Moore string search. I compiled practically the same
>> code in C format (of coz) using SAS/C v6.3 and the results were something
>> like 30secs for SAS/C and 60 secs for E.
 
like I said before: don't judge too fast. here's the result of profiling:
 
Execution profile for: boyer
 
                            calls     aver.     %         min       max
 
Raise                           1     0.027     0.027     0.027     0.027
CtrlC                          62     0.004     0.226     0.004     0.004
StrLen                       2664     0.004    10.477     0.003     0.032
StrCopy                         1     0.004     0.004     0.004     0.004
CleanUp                         0     0.000     0.000     0.000     0.000
WriteF                          1     0.112     0.112     0.112     0.112
fgets                        2664     0.025    65.919     0.005     0.185
main                            1    12.840    12.840    12.840    12.840
boyer                        2663     0.004    10.032     0.003     0.030
min                            27     0.003     0.081     0.003     0.003
max                            48     0.003     0.144     0.003     0.003
 
the (%) are most interesting: it seems like 66% is consumed by the fgets
call, and only 10% by the actual boyer() calculation.
I could probably optimize boyer() somewhat, but that seems to bring us
nowhere in terms of speed.
 
SAS must have a fairly better implementation of fgets() than Commodore,
otherwise this wouldn't have been possible. one way to
speed up the E version would be to get rid of fgets, and Read() the
whole file at once.
 
>> Any help much appreciated.
>> 
>> Son Le
>> 
>> PS. Another idea would be to include a set of standard functions with E for
>> basic functions like atoi, islower, etc. And also about the .o files, how
                        ^^^^  ^^^^^^^
                   Try Val(). good idea, I probably will.
 
since 2.5 can have basically anything in modules, I plan to
supply some of functions from the C world and from amiga.lib
 
>> about mimicking c.o with e.o?
 
that wouldn't help those C XREFs either. the problem is, wether you
call it c.o or e.o, that when both C and E code have to live together in
one executable, both demand their own startup-code.
 
I'm still searching for ways though. I have already succesfully linked
a trivial C function to an E program, with o2m.
 
Wouter
 
   ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
 / __/    wenn er wahr ist" - Wittgenstein
/___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-

From crash!prg.oxford.ac.uk!ecs.oxford.ac.uk!m88jrh Mon, 12 Jul 93 05:41:05 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 12 Jul 93 05:41:05 PST
Received: from sun2.nsfnet-relay.ac.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oFMLX-00000IC; Mon, 12 Jul 93 04:47 PDT
Received: from ecs.oxford.ac.uk (ecs.ecs) by prg.oxford.ac.uk id AA16751;
          Mon, 12 Jul 93 12:46:29 +0100
Received: from ecs.ox.ac.uk (booth35.ecs) by ecs.oxford.ac.uk (4.1/ecs.1) 
          id AA26726; Mon, 12 Jul 93 12:47:27 BST
Received: by ecs.ox.ac.uk (4.1/ecs2.0) id AA00338; Mon, 12 Jul 93 12:47:01 BST
Via: uk.ac.oxford.prg; Mon, 12 Jul 1993 12:46:41 +0100
Date: Mon, 12 Jul 93 12:47:01 BST
Message-Id: <9307121147.AA00338@booth35.ecs.ox.ac.uk>
From: m88jrh@ecs.oxford.ac.uk
To: amigae@bkhouse.cts.com
Subject: CDTV/CD-ROM information


   Does anybody have CD-ROM/CDTV include files for the various libraries and
devices?  Or maybe some information on what the calls to control the CD drive?
Would it be possible for the include files to be added to the standard E
distribution?  I'd volunteer to write some programs in E to do snazzy things
with the CD if I had such information, and I'd hope they'd be good enough to
give away with E.
   I guess I should post this to comp.sys.amiga.programmer or such, but I only
have read access to Usenet (ahhh...).  If someone would like to post for me,
I'd be very grateful. I'm sure a lot of people would like CD-ROM information.

   Thanks.

---
   _____  _
     /   / |    /  /
    /   /__/   /__/      Jason R. Hulance
   /   /\     /  /   <m88jrh@uk.ac.oxford.ecs>
|_/ . /  \ . /  / .

From crash!minyos.xx.rmit.OZ.AU!s924723 Mon, 12 Jul 93 05:41:08 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 12 Jul 93 05:41:08 PST
Received: from peladon.rmit.OZ.AU by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oFN78-00007WC; Mon, 12 Jul 93 05:36 PDT
Received: from minyos.xx.rmit.OZ.AU by peladon.rmit.OZ.AU with SMTP id AA19977
  (5.65c/IDA-1.4.4 for <amigae@bkhouse.cts.com>); Mon, 12 Jul 1993 22:36:05 +1000
Received: by minyos.xx.rmit.OZ.AU
Date: Mon, 12 Jul 93 22:35:50 EST
Message-Id: <9307121235.21423@minyos.xx.rmit.OZ.AU>
From: s924723@minyos.xx.rmit.OZ.AU (Son Huu Le)
To: amigae@bkhouse.cts.com
Subject: Optimising_E


(Profiler output and drool deleted :)

Boyerm.e probably suffered from a low buffer size input, which reminds me,
what are the proper arguments for the DOS function SetVBuf()? The DOS
manual says it accepts 4 arguments, E only accepts 3!?

Okay, so the boyerm.e example wasn't a very good as it relied on DOS calls,
but I still say E is slower and would benefit from a good optimizer. While
I was debugging my programs, I noticed that E always(?) used MOVE.L x(A5),D0
for variable storage/retrieval. In a tight loop, a MOVE.L x(AN),D0
will cost more cycle time than a MOVE.L D1,D0. Since E doesn't touch the
other data registers often, it would help speed time greatly if you could
use them.

For a better example(?) I coded the following short |ittle program, which is
small and relies on no external calls (except for outputting of result at
the end which btw, if left out under SAS/C, makes the program run under
1 sec - clever optimiser :)

E:

PROC main()
DEF x=0, y=0
	WHILE x<500000
		x++
		y:=y+x
	ENDWHILE
	WriteF('\d\n',y)
ENDPROC

Disassembly of main loop:
loop:
	MOVE.L	-4(A5),D0
	CMPI.L	#500000,D0
	BGE	out
	MOVE.L	-4(A5),D0	; What's this for?! (;
	ADDQ.L	#1,-4(A5)
	MOVE.L	-8(A5),D0
	ADD.L	-4(A5),D0
	MOVE.L	D0,-8(A5)
	BRA	loop

C:

#include <stdio.h>

void main()
{
	int x=0, y=0;		/* Direct port - bare minimum change */
	while (x<500000) {
		x++;
		y=y+x;
	}
	printf("%d\n",y);
}

Disassembly of main loop:
loop:
	ADDQ.L	#1,D7
	ADD.L	D7,D6		; SAS/C might be expensive, but look at this!
	CMPI.L	#500000,D7
	BLT.S	loop

Time results:
~~~~~~~~~~~~
(On an Amiga 2000 with 2mb fast, 1mb chip)
(Faster machines might need to alter the counter for meaningful results)

11.STAT-RAM:> timex test_c
446198416
Ticks:429 -> Secs:8.58 -> Time:0h0m8s

11.STAT-RAM:> timex test_e
446198416
Ticks:1224 -> Secs:24.48 -> Time:0h0m24s


Although I don't expect E to outperform a commercial C product, using
spare data registers would increase E's performance tremendously.

One last suggestion.. how about making some E functions (such as WriteF)
more assembling friendly, so you can use certain E functions in the middle
of an assembly code? ie. it uses only the upper data/address registers (4-7)
and leaves the lower ones intact.

Regards..
Son Le

PS. Wouter, your address <Wouter@alf.let.uva.nl> bounced.

From crash!delphi.com!NES Mon, 12 Jul 93 18:09:37 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 12 Jul 93 18:09:37 PST
Received: from bos3a.delphi.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oFXTM-00001xC; Mon, 12 Jul 93 16:39 PDT
Received: from delphi.com by delphi.com (PMDF V4.2-11 #4520) id
 <01H0GT3B3OCG8ZET5M@delphi.com>; Mon, 12 Jul 1993 19:39:03 EDT
Date: Mon, 12 Jul 1993 19:39:03 -0400 (EDT)
Message-id: <01H0GT3B50KI8ZET5M@delphi.com>
X-VMS-To: IN%"amigae@bkhouse.cts.com"
MIME-version: 1.0
Content-type: TEXT/PLAIN; CHARSET=US-ASCII
Content-transfer-encoding: 7BIT
From: NES@delphi.com
To: amigae@bkhouse.cts.com
Subject: Parallel port

How do you access the parallel port on the Amiga.  
I would like to read data from it...
 Eric    (nes@delphi.com)
P.S.  Is anybody reading this?

From crash!minyos.xx.rmit.OZ.AU!s924723 Mon, 12 Jul 93 19:45:30 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 12 Jul 93 19:45:30 PST
Received: from peladon.rmit.OZ.AU by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oFZKh-0000SmC; Mon, 12 Jul 93 18:39 PDT
Received: from minyos.xx.rmit.OZ.AU by peladon.rmit.OZ.AU with SMTP id AA24687
  (5.65c/IDA-1.4.4 for <amigae@bkhouse.cts.com>); Tue, 13 Jul 1993 11:38:50 +1000
Received: by minyos.xx.rmit.OZ.AU
Message-Id: <9307130139.25470@minyos.xx.rmit.OZ.AU>
Date: Tue, 13 Jul 1993 11:39:03 +1000 (EST)
In-Reply-To: <9307121546.6733@minyos.xx.rmit.OZ.AU> from "Barry D. Wills" at Jul 12, 93 10:43:00 am
X-Mailer: ELM [version 2.4 PL22]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 2569
From: s924723@minyos.xx.rmit.OZ.AU (Son Huu Le)
To: amigae@bkhouse.cts.com
Subject: Re: Optimizing E

> 
> Hi, Son Le.  Long time, eh?

 (; Working on anything lately, Barry?
 
> >what are the proper arguments for the DOS function SetVBuf()? The DOS
> >manual says it accepts 4 arguments, E only accepts 3!?
> 
> I remember you asking this before.  Don't know, so I didn't answer.

I was hoping Wouter could answer this for me. He properly missed the last one.
 
> >I was debugging my programs, I noticed that E always(?) used MOVE.L x(A5),D0
> >for variable storage/retrieval. In a tight loop, a MOVE.L x(AN),D0
> >will cost more cycle time than a MOVE.L D1,D0. Since E doesn't touch the
> >other data registers often, it would help speed time greatly if you could
> >use them.
> 
> Hmmmm.  What debugger do you use?

Monam with Devpac. It's great, once you get use to it. (;
 
> I'm interested in the results of replacing:
>   in E...  x++  <->  INC x
>   in C...  x++  <->  x += 1

Well, in the first case, E produced the exact code, minus that bogus instr. I
queried.. hmmm.. weird. In the second case.. the same. Did Wouter say that
the new version can output debug symbols?
 
> I recall Wouter saying that ++ returns a value and eats up some ticks in the
> process.  That may be what's going on in that Asm instruction you questioned,
> the value is being returned in D0.  The C compiler sees that you're not doing
> anything with the returned value, so optimizes it away.

Sound logical. But E could be much faster if it detected a loop or a low number
of variables, and transfer them all to data registers. Or perhaps a keyword 
that you can use to tell E you want the variable in a register and if there's
a free register, E uses it. A bit more work, but if you're going to produce
efficient and compact codes, it's essential.

> >One last suggestion.. how about making some E functions (such as WriteF)
> >more assembling friendly, so you can use certain E functions in the middle
> >of an assembly code? ie. it uses only the upper data/address registers (4-7)
> >and leaves the lower ones intact.
> 
> Wouter told me you can do this:
>     MOVEM D0-D7/A0-A3,(A7)+  ;/* Save multiple regs, post inc stack (SP). */
>     WriteF ('whatever')
>     MOVEM -(A7),D0-D7/A0-A3  ;/* Pre dec stack, restore multiple regs (SP). */
> 
> I'm not at home right now, so I'm not sure about the syntax.  A7 here is the
> program stack pointer (SP).  If you want to correct the syntax and post it to
> the list, I'd appreciate it.

Good idea, forgot about it. Still, a bit cumbersome, but it's do.
Btw: The syntax looks pretty much like the correct syntax. (;

Cheers..
Son Le

From crash!UNCA.EDU!JVANRIPER Mon, 12 Jul 93 21:49:54 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 12 Jul 93 21:49:54 PST
Received: from uncavx by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oFb2d-0000mmC; Mon, 12 Jul 93 20:28 PDT
Received: from UNCA.EDU by UNCA.EDU (PMDF V4.2-11 #3902) id
 <01H0H0HVLITC935A2V@UNCA.EDU>; Mon, 12 Jul 1993 23:27:34 EDT
Date: Mon, 12 Jul 1993 23:27:34 -0400 (EDT)
Message-id: <01H0H0HVMBR6935A2V@UNCA.EDU>
Organization: University of North Carolina at Asheville
X-VMS-To: IN%"amigae@bkhouse.cts.com"
MIME-version: 1.0
Content-type: TEXT/PLAIN; CHARSET=US-ASCII
Content-transfer-encoding: 7BIT
From: "Joseph E. Van_Riper III" <JVANRIPER@UNCA.EDU>
To: amigae@bkhouse.cts.com
Subject: New To List (first post)


	Welp.. here I am.  Finally found a forum for the discussion of AmigaE,
a language I'm pretty impressed with, overall.

	I've been working on a fortune cookie program, perhaps the most
complex, flexible version of this kind of program ever written, and found one
very annoying problem that I'd like to solve, but I haven't figured out a
solution for yet (perhaps because I missed something in the docs or something).

	Most C language compilors open a filestream called 'stderr' that lets
you output text to a stream that won't get redirected into a file.  I would
find this very useful for some of the work I'm doing, but I haven't figured out
precisely what I'm supposed to do to do this.  As a work-around, I've instead
given the user the option of having the text go to a specified file, or to
stdout.

	Can anyone suggest a way I could open a stderr port to the same
"window" stdout is hooked to, without having to go through too much convoluted
programming nonsense?

	Also, I've got something of a complaint that perhaps you guys have
already found a work around for that is better than mine... I would like to
have a string that is CONST (that is, say:

CONST VERSION = '$VER: Myprog 234098.002 (12.7.93/23:17:34/E 2.1b) An ' +
                'Example Program'

which could be used anywhere in my program).

Currently, this doesn't appear to work.  Perhaps I'm doing something wrongly..
or perhaps there is no adequate work-around for this (short of DEFining a
global variable and setting it in PROC main() or something).

One thing very positive about Amiga E, however, is the way it practically
forces you to write code using the Amiga's many functions.  Talk about
following proper procedures... Very Very Nice.  My programs have never been
more Amiga-like than they are now!

- Trey

From crash!mead.u.washington.edu!cybele Mon, 12 Jul 93 21:49:57 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 12 Jul 93 21:49:57 PST
Received: from mead.u.washington.edu by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oFbk0-00018rC; Mon, 12 Jul 93 21:13 PDT
Received: by mead.u.washington.edu
	(5.65/UW-NDC Revision: 2.28 ) id AA27201; Mon, 12 Jul 93 21:13:19 -0700
Date: Mon, 12 Jul 93 21:13:19 -0700
Message-Id: <9307130413.AA27201@mead.u.washington.edu>
From: Jason Simpson <cybele@mead.u.washington.edu>
To: amigae@bkhouse.cts.com
Subject: Rnd() not very random, Mod() not quite working?

 
  Has anyone else noticed that Rnd() on small ranges (2-4 or so) doesn't
produce very random results? Try a routine like:
 
    LOOP
        x := Rnd(640)
        y := Rnd(400)
        c := Rnd(2) + 1  /* To offset from the background */
        Plot( x, y, c )
    ENDLOOP
 
  You should notice prominent bands of color.
 
  Also, when experimenting with RndQ(), I found that the Mod() function
didn't always return the expected value, for example Mod(40000001,400)
produces the result "610" -- it seems to do this mostly with larger numbers.

  Am I making incorrect assumptions here, or is there something wrong?

From crash!kirk.safb.af.mil!BWILLS Tue, 13 Jul 93 05:41:36 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 13 Jul 93 05:41:36 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oFjN3-0000zeC; Tue, 13 Jul 93 05:22 PDT
Message-Id: <m0oFjN3-0000zeC@crash.cts.com>
Date: 13 Jul 93 07:19:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: re:  Optimizing E, Assembly and E

> (; Working on anything lately, Barry?

Not really.  Just cleaning up my hard drive in prep for the arrival of OS2.1.
See my IdentifyProcessors program?  I was especially interested in it because 
I run 2 processors and it's nice to have a system that doesn't have to be told 
how to startup. :)  But I was also thinking of the possibility that E  may be 
producing processor specific code in the near future.  This info could be used 
to make programs more optimal/robust.
 
>queried.. hmmm.. weird. In the second case.. the same. Did Wouter say that
>the new version can output debug symbols?

I don't recall mention of it.  But now would be a good opportunity. :)
 
>> >One last suggestion.. how about making some E functions (such as WriteF)
>> >more assembling friendly, so you can use certain E functions in the middle
>> >of an assembly code? ie. it uses only the upper data/address registers
(4-7)
>> >and leaves the lower ones intact.

>> Wouter told me you can do this:
>>     MOVEM D0-D7/A0-A3,(A7)+  ;/* Save multiple regs, post inc stack (SP). */
>>     WriteF ('whatever')
>>     MOVEM -(A7),D0-D7/A0-A3  ;/* Pre dec stack, restore multiple regs (SP). */

>Good idea, forgot about it. Still, a bit cumbersome, but it's do.
>Btw: The syntax looks pretty much like the correct syntax. (;

Yeah.  If you're lazy, like me, you can make two subroutines at the end of your
program:

savem: 
        MOVEM D0-D7/A0-A3,(A7)+
        RTS

restorem:
        MOVEM -(A7),D0-D7/A0-A3 
        RTS

Then you can use in your program:

        JSR   savem
        WriteF ('E functions to your hearts content...')
        JSR   restorem

I know you already know this.  I'm just posting it because *I* just learned it
myself, and someone else may find this useful.  An excellent debugging tool for
learning assembly.

BTW (Wouter), is A6 free for our use in E?  Should we be saving and restoring 
A0-A3,A6 .vs. only A0-A3?

Later.  -- Barry
 

From crash!unx.sas.com!jamie Tue, 13 Jul 93 07:47:20 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 13 Jul 93 07:47:20 PST
Received: from lamb.sas.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oFl2q-000039C; Tue, 13 Jul 93 07:09 PDT
Received: from mozart by lamb.sas.com (5.65c/SAS/Gateway/10-28-91)
	id AA05063; Tue, 13 Jul 1993 10:09:21 -0400
Received: from cdevil.unx.sas.com by mozart (5.65c/SAS/Domains/5-6-90)
	id AA10180; Tue, 13 Jul 1993 09:49:15 -0400
Received: by cdevil.unx.sas.com (5.65c/SAS/Generic 9.01/3-26-93)
	id AA24246; Tue, 13 Jul 1993 09:49:09 -0400
Message-Id: <199307131349.AA24246@cdevil.unx.sas.com>
Date: Tue, 13 Jul 1993 09:49:08 -0500 (EDT)
X-Mailer: ELM [version 2.4 PL20]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 2354
From: James Cooper <jamie@unx.sas.com>
To: amigae@bkhouse.cts.com
Subject: stderr & $VER

>        Welp.. here I am.  Finally found a forum for the discussion of AmigaE,
>a language I'm pretty impressed with, overall.

Welcome!  :-)

>        Can anyone suggest a way I could open a stderr port to the same
>"window" stdout is hooked to, without having to go through too much convoluted
>programming nonsense?

Since the Amiga doesn't directly support a 'stderr' stream, every C
compiler I know of simply uses an

        Open("*", OLDFILE)

type of statement to "fake" stderr.  '*' is the AmigaDOS shorthand which
means "current console".

>        Also, I've got something of a complaint that perhaps you guys have
>already found a work around for that is better than mine... I would like to
>have a string that is CONST (that is, say:
>
>CONST VERSION = '$VER: Myprog 234098.002 (12.7.93/23:17:34/E 2.1b) An ' +
>                'Example Program'
>
>which could be used anywhere in my program).

Hmm... so far, I haven't been able to do this, except by simply creating
a PTR TO CHAR variable that I never use...

Also, I really *hope* you aren't using a version string like your
example... the correct $VER format, according to Commodore is:

        "$VER: progname v.r (d.m.y)"

where

        '$VER: '        =       is *required*.  All 6 characters, from
                                the leading '$' to a trailing space.

        progname        =       program name with no embedded spaces or
                                periods.

        v               =       major version number of program, in
                                numeric form, with NO leading zeros.

        r               =       minor version number, release number, or
                                whatever, following the numbering scheme
                                of 1,...9,10,...99,100..., with NO
                                leading zeros.

        d               =       day, with NO leading zeros.

        m               =       month, with NO leading zeros.

        y               =       year, last TWO digits only!

and you *must* use periods to separate the d.m.y numbers, or the Locale
stuff from Amiga OS 2.1 and up cannot properly format the date string.

The d.m.y field must be enclosed in parentheses, with no other extra
characters allowed in the string (i.e., nothing else inside the parens,
no trailing comments, etc.).

From crash!minyos.xx.rmit.OZ.AU!s924723 Tue, 13 Jul 93 19:46:08 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 13 Jul 93 19:46:08 PST
Received: from peladon.rmit.OZ.AU by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oFvUG-0000elC; Tue, 13 Jul 93 18:18 PDT
Received: from minyos.xx.rmit.OZ.AU by peladon.rmit.OZ.AU with SMTP id AA04878
  (5.65c/IDA-1.4.4 for <amigae@bkhouse.cts.com>); Wed, 14 Jul 1993 11:18:05 +1000
Received: by minyos.xx.rmit.OZ.AU
Message-Id: <9307140118.26183@minyos.xx.rmit.OZ.AU>
Date: Wed, 14 Jul 1993 11:18:21 +1000 (EST)
In-Reply-To: <199307131349.AA24246@cdevil.unx.sas.com> from "James Cooper" at Jul 13, 93 09:49:08 am
X-Mailer: ELM [version 2.4 PL22]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 336
From: s924723@minyos.xx.rmit.OZ.AU (Son Huu Le)
To: amigae@bkhouse.cts.com
Subject: Re: stderr & $VER

> 
> Also, I really *hope* you aren't using a version string like your
> example... the correct $VER format, according to Commodore is:
> 
>         "$VER: progname v.r (d.m.y)"

Are you sure it's (d.m.yy) ?

I remember someone mentioning that the date was international format,
ie. (m.d.yy) ?

Could you verify this?

Thanks.. Son Le

From crash!kirk.safb.af.mil!BWILLS Wed, 14 Jul 93 05:47:22 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 14 Jul 93 05:47:22 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oG5lo-00008sC; Wed, 14 Jul 93 05:17 PDT
Message-Id: <m0oG5lo-00008sC@crash.cts.com>
Date: 14 Jul 93 07:13:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: re: Mod()

Yeah, Jason.  I got the same thing from mod.  According to E21b (on *my*
computer) Mod (40000001, 400) = 610.  Here's a mod() function I wrote:

----- CUT HERE ----------------------------------------------------------------

PROC mod (this, bythis) RETURN this - Mul (Div (this, bythis), bythis)

PROC main ()
  WriteF ('Mod (40000001, 400) = \d\n', Mod (40000001, 400))
  WriteF ('mod (40000001, 400) = \d\n', mod (40000001, 400))
ENDPROC

----- CUT HERE ----------------------------------------------------------------

This program's output is:

Mod (40000001, 400) = 610
mod (40000001, 400) = 1

Later.  -- Barry

From crash!unx.sas.com!jamie Wed, 14 Jul 93 09:48:34 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 14 Jul 93 09:48:34 PST
Received: from lamb.sas.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oG8ho-0000KXC; Wed, 14 Jul 93 08:25 PDT
Received: from mozart by lamb.sas.com (5.65c/SAS/Gateway/10-28-91)
	id AA15465; Wed, 14 Jul 1993 11:25:13 -0400
Received: from cdevil.unx.sas.com by mozart (5.65c/SAS/Domains/5-6-90)
	id AA16967; Wed, 14 Jul 1993 10:57:42 -0400
Received: by cdevil.unx.sas.com (5.65c/SAS/Generic 9.01/3-26-93)
	id AA28529; Wed, 14 Jul 1993 10:57:41 -0400
Message-Id: <199307141457.AA28529@cdevil.unx.sas.com>
Date: Wed, 14 Jul 1993 10:57:40 -0500 (EDT)
X-Mailer: ELM [version 2.4 PL20]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 691
From: James Cooper <jamie@unx.sas.com>
To: amigae@bkhouse.cts.com (Amiga E Mailing List)
Subject: Re: stderr & $VER

>> Also, I really *hope* you aren't using a version string like your
>> example... the correct $VER format, according to Commodore is:
>> 
>>         "$VER: progname v.r (d.m.y)"
>
>Are you sure it's (d.m.yy) ?
>
>I remember someone mentioning that the date was international format,
>ie. (m.d.yy) ?
>
>Could you verify this?

I did before I sent the message.  In fact, I had it as m.d.y, and used
the version command, and the date came out really weird...  try this one
yourself:

        $VER: test 1.0 (7.14.93)

instead of

        $VER: test 1.0 (14.7.93)

For the first, I get

1> version test full
test 1.0 (02/07/94)

For the second, I get

1> version test full
test 1.0 (07/14/93)

From crash!minyos.xx.rmit.OZ.AU!s924723 Wed, 14 Jul 93 21:46:12 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 14 Jul 93 21:46:12 PST
Received: from peladon.rmit.OZ.AU by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oGJN1-0000cWC; Wed, 14 Jul 93 19:48 PDT
Received: from minyos.xx.rmit.OZ.AU by peladon.rmit.OZ.AU with SMTP id AA10303
  (5.65c/IDA-1.4.4 for <amigae@bkhouse.cts.com>); Thu, 15 Jul 1993 12:48:04 +1000
Received: by minyos.xx.rmit.OZ.AU
Message-Id: <9307150248.28006@minyos.xx.rmit.OZ.AU>
Date: Thu, 15 Jul 1993 12:48:19 +1000 (EST)
X-Mailer: ELM [version 2.4 PL22]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1533
From: s924723@minyos.xx.rmit.OZ.AU (Son Huu Le)
To: amigae@bkhouse.cts.com
Subject: Re: stderr & $VER (fwd)

Forwarded message:
 From JVANRIPER@UNCA.EDU Wed Jul 14 22:48:18 1993
Date: Wed, 14 Jul 1993 08:46:36 -0400 (EDT)
From: "Joseph E. Van_Riper III" <JVANRIPER@UNCA.EDU>
Subject: Re: stderr & $VER
To: s924723@minyos.xx.rmit.OZ.AU
Message-Id: <01H0IYML1DG2935QBF@UNCA.EDU>
Organization: University of North Carolina at Asheville
X-Vms-To: IN%"s924723@minyos.xx.rmit.OZ.AU"
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-Transfer-Encoding: 7BIT


You typed (regarding International Date Format for VER strings):

>Are you sure it's (d.m.yy) ?

I am pretty sure that IS the International Date Format.  Although, looking at
the Includes and Autodocs, in the dos.library/DateToStr() function, it shows
for dat_Format a FORMAT_INT that is (yy-mmm-dd).. but somehow, I feel certain
that THAT couldn't be right for VER strings <grin>.

Doing it m.d.y is very American.. I know of no other country that formats their
date that way.  And frankly, I think it's a stupid format (but, I suppose I'm
not a very good American <grin>).  It's less logical... the d.m.y format shows
an increasing level of scope, while a y.m.d format would show a decreasing
level of scope, while m.d.y just plain LOOKS bad, is inelegant, and can get the
year/day confused when written in longer format (May 3rd, 1994... have to use a
',' to keep the confusion away.. not so with 3 May 94.. SO much more elegant).

Which has nothing whatsoever to do with E, and probably annoys the heck out of
the readership here.. sorry.  I'll shut up now.

- Trey

From crash!mars.let.uva.nl!wouter Fri, 16 Jul 93 15:51:34 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 16 Jul 93 15:51:34 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oGxkR-0000A0C; Fri, 16 Jul 93 14:55 PDT
Received: by mars.let.uva.nl id AA16092
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Fri, 16 Jul 1993 23:58:58 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Fri, 16 Jul 1993 23:58:58 +0200
Message-Id: <199307162158.AA16092@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: Optimizing E

>> Boyerm.e probably suffered from a low buffer size input, which reminds me,
>> what are the proper arguments for the DOS function SetVBuf()? The DOS
>> manual says it accepts 4 arguments, E only accepts 3!?
 
SetVBuf() is broken in 2.1b. If you really need to use this function,
the only thing you can do is write an assembly stub for this yourself
 
>> Okay, so the boyerm.e example wasn't a very good as it relied on DOS calls,
>> but I still say E is slower and would benefit from a good optimizer. While
>> I was debugging my programs, I noticed that E always(?) used MOVE.L x(A5),D0
>> for variable storage/retrieval. In a tight loop, a MOVE.L x(AN),D0
>> will cost more cycle time than a MOVE.L D1,D0. Since E doesn't touch the
>> other data registers often, it would help speed time greatly if you could
>> use them.
 
already very early in the design stage of the E compiler, I had to make
a choice: do I give the registers to the language, or do I make them
free for use with inline assembly? back then, I was just making the perfect
language for just one person (me), and since I enjoy using assembly
very much, I chose for the latter. The consequence is that the compiler
_may_ thrash registers with every expression, and the fact that they
don't most of of the time is no guarantee for the compiler that it can
put it's variables there.
 
>> For a better example(?) I coded the following short |ittle program, which is
>> small and relies on no external calls (except for outputting of result at
>> the end which btw, if left out under SAS/C, makes the program run under
>> 1 sec - clever optimiser :)
 
yeah, but you give it something any optimizer could get away with. Try
again with a more complex (real-life) algorithm with more variables in certain
parts than registers, consisting of multiple functions (i.e. own written
functions, not buitins etc.), and the gains made from the optimizer will
drop down tremendously.
 
>> Although I don't expect E to outperform a commercial C product, using
>> spare data registers would increase E's performance tremendously.
 
agreed. SAS/C can outperform E 2.1b when it wants to, in most situations.
the problems due to the nature of compiler and language regarding
allocating registers and such, will not stop me from gradually enhancing
EC with capabilities that allow great optimisations in code. some
of you will probably notice that v2.5 will already be a great step
forward, and it will continue to be enhanced to generate even better
code, making good use of registers (which will cause performance
tradeoffs with inline assembly, but nothing serious).
 
>> One last suggestion.. how about making some E functions (such as WriteF)
>> more assembling friendly, so you can use certain E functions in the middle
>> of an assembly code? ie. it uses only the upper data/address registers (4-7)
>> and leaves the lower ones intact.
 
it would be very future-incompatible to guarantee certain registers
preserved by certain E language constructs.
I of course simply could have saved all registers at any swap
between E and Asm, but this would have been unnecessary overhead.
most inline assembly parts simply take a few values, do some
heavy computing, and shove the result in an E variable, and thus
won't need to save _any_ registers. that's why you have to do
it yourself. a better programming style if you want to mix E
and Asm all the time, is to keep all long term values that
have to be preserved in E variables, and use registers for
all other variables that "live" only within one block of
assembly.
 
>> Regards..
>> Son Le
>> 
>> PS. Wouter, your address <Wouter@alf.let.uva.nl> bounced.
 
oh? are you the only one having trouble with this? I still receive
plenty of mail there.
 
>> > >what are the proper arguments for the DOS function SetVBuf()? The DOS
>> > >manual says it accepts 4 arguments, E only accepts 3!?
>> > 
>> > I remember you asking this before.  Don't know, so I didn't answer.
>> 
>> I was hoping Wouter could answer this for me. He properly missed the last one
 
 
I did miss it. I was on a short vacation.
 
>> > I recall Wouter saying that ++ returns a value and eats up some ticks in th
 
>> > process.  That may be what's going on in that Asm instruction you questione
,
>> > the value is being returned in D0.  The C compiler sees that you're not doi
g
>> > anything with the returned value, so optimizes it away.
 
that's exactly what happens. E v2.5 too takes care of this.
 
>> >Did Wouter say that the new version can output debug symbols?
>> 
>> I don't recall mention of it.  But now would be a good opportunity. :)
 
yes it does. works great with any disassembler/debugger/profiler etc.
 
>> BTW (Wouter), is A6 free for our use in E?  Should we be saving and restoring
 
>> A0-A3,A6 .vs. only A0-A3?
 
a6 is free, yes. only a4/a5 must be preserved.
if you use a6 in inline assembly and want it to preserved until after
an E statement, you'll have to save it on the stack too.
 
>> Later.  -- Barry
>>  
 
Wouter
 
   ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
 / __/    wenn er wahr ist" - Wittgenstein
/___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-

From crash!erda.rl.af.mil!kopack Mon, 19 Jul 93 07:45:53 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 19 Jul 93 07:45:53 PST
Received: from erda.rl.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oHvkU-0000HoC; Mon, 19 Jul 93 06:59 PDT
Received: from bugs (bugs.ERDA.RL.AF.MIL) by erda.rl.af.mil 
	id AA03458; Mon, 19 Jul 93 09:59:21 EDT
Date: Mon, 19 Jul 93 09:59:21 EDT
Message-Id: <9307191359.AA03458@erda.rl.af.mil>
From: kopack@erda.rl.af.mil (Mike Kopack)
To: amigae@bkhouse.cts.com
Subject: Making E for Unix????


Hi all!

I was just wondering if Wouter has any plans of developing E for use on UNIX
systems? I mean, if it was writtne mostly in C then it shouldn't be too 
difficult to just recompile on a Unix box. 

After all, E is the language that we all LOVE so much. I'd love to be able to
use it at work. Aside from that, if we could port it over to Unix (or make it
more generic) then there exists the possibility that it could become as popular
as C is. C didn't really take off too much until compilers started becomeing
available for different platforms. I'd love to see E everywhere!!!

Just my thoughts......

--Mike Kopack

From crash!freenet.carleton.ca!ad047 Mon, 19 Jul 93 16:03:12 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 19 Jul 93 16:03:12 PST
Received: from freenet.carleton.ca by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oI1Cx-0000N3C; Mon, 19 Jul 93 12:49 PDT
Received: by freenet.carleton.ca (4.1/SMI-4.0)
	id AA25036; Mon, 19 Jul 93 15:48:08 EDT
Date: Mon, 19 Jul 93 15:48:08 EDT
Message-Id: <9307191948.AA25036@freenet.carleton.ca>
Reply-To: ad047@freenet.carleton.ca
From: ad047@freenet.carleton.ca (Stephane Costisella)
To: amigae@bkhouse.cts.com
Subject: Amos to E


I am converting my utilities done in Amos to E.

In Amos: A$=INKEY$ is to get a keyboard character.
         Month$=Str(12) converts 12 as a string.
         ASCII$=Asc(a) converts a into an ASCII value.
         A$=CHR$(27) convert a ASCII value into a character.

I need the equivalent command in E. If Wouter can do a table conversion
from Amos<->E like he did with C<->E it would be very usefull. And I need the
commands how to get or put values from gadtools gadgets.



--
------------------------------------------------------------------------------
| Stephane Costisella, Hull Quebec, Canada  | Talk me about: //3D Raytracing |
| Freenet: ad047@freenet.carleton.ca        | ------------- // Programming   |
|___________________________________________|            \\//  CommodoreAMIGA|

From crash!mars.let.uva.nl!wouter Mon, 19 Jul 93 16:04:02 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 19 Jul 93 16:04:02 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oI3sb-0000YSC; Mon, 19 Jul 93 15:40 PDT
Received: by mars.let.uva.nl id AA21227
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Tue, 20 Jul 1993 00:43:54 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Tue, 20 Jul 1993 00:43:54 +0200
Message-Id: <199307192243.AA21227@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: Portable E on unix

>> Hi all!
>> 
>> I was just wondering if Wouter has any plans of developing E for use on UNIX
>> systems? I mean, if it was writtne mostly in C then it shouldn't be too 
>> difficult to just recompile on a Unix box. 
 
from the speed of the compiler you should have noticed the compiler
could not have been written in C. EC is written in 100% assembly, and
thus not portable. it would probably be possible to port it to a 680x0
unix box without tomuch trouble, but that wouldn't get us anywhere.
 
>> After all, E is the language that we all LOVE so much. I'd love to be able to
>> use it at work. Aside from that, if we could port it over to Unix (or make it
>> more generic) then there exists the possibility that it could become as popul
r
>> as C is. C didn't really take off too much until compilers started becomeing
>> available for different platforms. I'd love to see E everywhere!!!
 
yeah, me too! Portable E is on the drawing board, but it requires me to write
a new compiler (or atleast translator) for E from scratch, so don't
expect it anytime soon.
 
I have plans for writing an E2C translator in E, which can translate itself
to C when finished, and then be ported easily. On other platforms, it could then
be a used as a frontend to existing C compilers.
 
>> Just my thoughts......
>> 
>> --Mike Kopack
 
Wouter
 
   ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
 / __/    wenn er wahr ist" - Wittgenstein
/___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-

From crash!kirk.safb.af.mil!BWILLS Mon, 19 Jul 93 21:54:48 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 19 Jul 93 21:54:48 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oI7sm-0000pwC; Mon, 19 Jul 93 19:56 PDT
Message-Id: <m0oI7sm-0000pwC@crash.cts.com>
Date: 19 Jul 93 21:54:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: re: Amos to E

/* In answer to Stephane's Amos2E questions. */

PROC main ()
  DEF s [2] : STRING,
      c = "A",
      cChar = NIL : PTR TO CHAR,
      iChar = NIL : PTR TO INT,
      lChar = NIL : PTR TO LONG

/* >> In Amos: A$=INKEY$ is to get a keyboard character.
   Unfortunately, Inp() *waits* for the RETURN key.  If I have time maybe
   I'll try to work up an IDCMP thang; don't know if that would be the
   the best solution.  Meanwhile maybe someone else can pull this one out
   of the air.
*/

/* >> Month$=Str(12) converts 12 as a string.  */
  StringF (s, '\d', 12)
  WriteF ('1)  Month=\s\n', s)

/* >> ASCII$=Asc(a) converts a into an ASCII value.  */
  WriteF ('2)  Asc(c)=\d\n', c)

/* >> A$=CHR$(27) convert a ASCII value into a character.  */
  WriteF ('3)  CHR$(c)=\c\n', c)

/* Characters are similar to those in C.  It's how you treat them that */
/* makes the difference.  Note the following awesome feature:          */
  c := "FRED"
  WriteF ('4a)  32-bit character!  But be careful what you want:\n' +
          '           CHR$(c) = \c\n' +
          '     (no equiv)(c) = \d\n', c, c)

/* And lastly...a little of Wouter's polymorphism. */
  cChar := iChar := lChar := 'FRED'
  WriteF ('4b)  What WriteF() thinks about 32-bit characters:\n' +
          '     cChar[]=\c\n' +
          '     iChar[]=\c\n' +
          '     lChar[]=\c\n',
          cChar[], iChar[], lChar[])
  WriteF ('     What E really thinks about 32-bit characters:\n' +
          '     cChar[]=\s,    Char(cChar)=\d[10], cChar[]=\d[10]\n' +
          '     iChar[]=\s,   Int(iChar) =\d[10], iChar[]=\d[10]\n' +
          '     lChar[]=\s, Long(lChar)=\d[10], lChar[]=\d[10]\n',
          IF cChar[] = "F"    THEN 'F'    ELSE '*', Char (cChar), cChar[],
          IF iChar[] = "FR"   THEN 'FR'   ELSE '*', Int (iChar),  iChar[],
          IF lChar[] = "FRED" THEN 'FRED' ELSE '*', Long (lChar), lChar[])

/*=====
>from Amos<->E like he did with C<->E it would be very usefull. And I need the
>commands how to get or put values from gadtools gadgets.

Sorry, Stephane.  KS1.3 is too dumb for gadtools :(
I got carried away, so you got more than you asked for.  Hope I answered
your other questions thoroughly.

Later.
-- Barry

=====*/
ENDPROC

From crash!speedway.net!donaldh Mon, 19 Jul 93 23:46:46 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 19 Jul 93 23:46:46 PST
Received: from access1.speedway.net by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oIA9l-0000ozC; Mon, 19 Jul 93 22:22 PDT
Received: by access1.speedway.net (Smail3.1.28.1 #4)
	id m0oIA9e-000TNeC; Tue, 20 Jul 93 01:22 PDT
Message-Id: <m0oIA9e-000TNeC@access1.speedway.net>
Date: Tue, 20 Jul 93 01:22 PDT
Organization: Speedway Free Access (10288-1-503-520-2222)
X-Mailer: Mail User's Shell (7.1.2 7/11/90)
From: donaldh@speedway.net (Donald Holman)
To: amigae@bkhouse.cts.com
Subject: 'C' to Amiga E

'lo all.  I was wondering, does a utility exist yet to convert 'C'
source code to Amiga E source code?  Especially from SAS/C code.  LEt
me know know..thanks. 
 
    Donald

-- 
"We work in the dark - we do what we can - we give what we have.  Our doubt
 is our passion and our passion is our task.  The rest is the madness of
 art."  - Henry James    [donaldh@speedway.net]

From crash!axion.bt.co.uk!D.Higginson Tue, 20 Jul 93 03:46:04 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 20 Jul 93 03:46:04 PST
Received: from zaphod.axion.bt.co.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oIDLQ-0000JJC; Tue, 20 Jul 93 01:46 PDT
Received: from elephant.axion.bt.co.uk by zaphod.axion.bt.co.uk with SMTP (PP); Tue, 20 Jul 1993 09:46:14 +0100
Message-Id: <m0oIDLQ-0000JJC@crash.cts.com>
Date: Tue, 20 Jul 93 09:46:08 BST
From: D.Higginson@axion.bt.co.uk
To: amigae@bkhouse.cts.com
Cc: D.Higginson@axion.bt.co.uk
Subject: Passing parameters other than LONGs


Is it possible to write a procedure in Amiga E which
accepts as a parameter something other than a 4-byte value?

I ask because one of the GadTools slider features is to
call a conversion function of your own. It passes the
level of the slider as a WORD (2 bytes). If I try
typecasting any parameter I get a compilation error.

Failing this, can anyone tell me the machine code
instruction to directly POP the value from the stack? I
assume this is possible, but I don't know any 68000.

Finally, some hook functions like these expect you to save
and restore all the 68000 registers. Can anybody tell me
the instructions to do this? I have seen in programs
things like: "MOVE.L d0-d7,sp" or something to that effect.

Any help would be greatly appreciated

Cheers

Dave

From crash!axion.bt.co.uk!D.Higginson Wed, 21 Jul 93 03:43:34 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 21 Jul 93 03:43:34 PST
Received: from zaphod.axion.bt.co.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oIbVe-0000fGC; Wed, 21 Jul 93 03:34 PDT
Received: from elephant.axion.bt.co.uk by zaphod.axion.bt.co.uk with SMTP (PP); Wed, 21 Jul 1993 11:34:25 +0100
Message-Id: <m0oIbVe-0000fGC@crash.cts.com>
Date: Wed, 21 Jul 93 11:34:17 BST
From: D.Higginson@axion.bt.co.uk
To: amigae@bkhouse.cts.com
Cc: D.Higginson@axion.bt.co.uk
Subject: Amiga E new functions


Can anybody tell me any Amiga E functions/procedures that
were either not documented in version 2.1 or have been
added since? I saw in a recent article a "shl" function
which I cannot remember seeing in the Amiga E docs. This
function will be extremely useful in figuring out the mask
from the MP_SIGBIT number. Previously, I had used a loop
which multiplied by 2.

Thanks for any information.

Dave

From crash!axion.bt.co.uk!D.Higginson Wed, 21 Jul 93 09:48:02 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 21 Jul 93 09:48:02 PST
Received: from zaphod.axion.bt.co.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oIfdb-0000MIC; Wed, 21 Jul 93 07:59 PDT
Received: from elephant.axion.bt.co.uk by zaphod.axion.bt.co.uk with SMTP (PP); Wed, 21 Jul 1993 15:58:59 +0100
Message-Id: <m0oIfdb-0000MIC@crash.cts.com>
Date: Wed, 21 Jul 93 15:58:54 BST
From: D.Higginson@axion.bt.co.uk
To: amigae@bkhouse.cts.com
Cc: D.Higginson@axion.bt.co.uk
Subject: HAM mode


Seeing as I have posted requests for hepl recently, I
thought I would post an offer of help.

If there is anyone who does not know how to use HAM mode
(it's pretty hard to find information on) and would like
some information on it I will gladly write something and
post it to this mailing list (that includes HAM8). Maybe
this is a bit basic for some people...

Let me know,

Dave

P.S. *Every* time I post a message I get a message back from
MAILER-DAEMON@dax.cc.uakron.edu telling me my message was
not delivered, but they seem to be getting through.

From crash!cislabs.pitt.edu!cjfst4 Wed, 21 Jul 93 19:47:04 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 21 Jul 93 19:47:04 PST
Received: from phantom.cislabs.pitt.edu by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oInJg-0000UUC; Wed, 21 Jul 93 16:11 PDT
Received: from meg.cislabs.pitt.edu by phantom.cislabs.pitt.edu (4.1/1.34)
	id AA20499; Wed, 21 Jul 93 19:11:17 EDT
Received: by meg.cislabs.pitt.edu (4.1/EMI-2.1)
	id AA01548; Wed, 21 Jul 93 19:11:14 EDT
Message-Id: <9307212311.AA01548@meg.cislabs.pitt.edu>
Date: Wed, 21 Jul 1993 19:11:13 -0400 (EDT)
X-Mailer: ELM [version 2.4 PL21]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 558
From: cjfst4@cislabs.pitt.edu
To: amigae@bkhouse.cts.com (Amiga-E List)
Subject: Help with datestamps

I hope someone can help me with this problem...I can't seem to get
DateStamp and DateToStr working right <sigh>.  I keep on getting an
'illegal use of/reference to object' on this line:

    date.stamp := New(SIZEOF datestamp)


----8<----8<----

MODULE 'dos/dos', 'dos/datetime'

PROC main()

DEF date : PTR TO datetime,
    s[10] : ARRAY OF CHAR

    date := New(SIZEOF datetime)
    date.stamp := New(SIZEOF datestamp)
    date.stamp := DateStamp(date.stamp)
    date.strdate := s
    DateToStr(date)
    WriteF('date: \s\n',s)

ENDPROC

----8<----8<----

From crash!mars.let.uva.nl!wouter Wed, 21 Jul 93 19:47:07 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 21 Jul 93 19:47:07 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oInOP-0000ofC; Wed, 21 Jul 93 16:16 PDT
Received: by mars.let.uva.nl id AA26485
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Thu, 22 Jul 1993 01:19:53 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Thu, 22 Jul 1993 01:19:53 +0200
Message-Id: <199307212319.AA26485@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: c2e

>> Hi Wouter,
>> 
>>  Yeah, that's really great. And what about C2E? There are so many examples
>> and other sources in C, so C2E would also be usefull for people who won't be
>> doing in any language but E.
 
would be nice, but that would require me to write a entire parser for C,
and I have nicer things to do. Maybe somebody out there (armed with a yacc
grammer for C, perhaps?) would like to try it.
 
>> Best wishes,	Jure
>> 
 
--
 
>> 'lo all.  I was wondering, does a utility exist yet to convert 'C'
>> source code to Amiga E source code?  Especially from SAS/C code.  LEt
>> me know know..thanks. 
>>  
>>     Donald
 
no it doesn't, unfortunately.
 
Wouter
 
   ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
 / __/    wenn er wahr ist" - Wittgenstein
/___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-

From crash!speedway.net!donaldh Thu, 22 Jul 93 01:43:54 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 22 Jul 93 01:43:54 PST
Received: from access1.speedway.net by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oIvgD-0000NSC; Thu, 22 Jul 93 01:07 PDT
Received: by access1.speedway.net (Smail3.1.28.1 #4)
	id m0oIvgC-000SyhC; Thu, 22 Jul 93 04:07 PDT
Message-Id: <m0oIvgC-000SyhC@access1.speedway.net>
Date: Thu, 22 Jul 93 04:07 PDT
Organization: Speedway Free Access (10288-1-503-520-2222)
X-Mailer: Mail User's Shell (7.1.2 7/11/90)
From: donaldh@speedway.net (Donald Holman)
To: amigae@bkhouse.cts.com
Subject: HAM

Yes..I'd like to see information on how to use HAM mode.  Thanks. 
 
   Donald

-- 
"We work in the dark - we do what we can - we give what we have.  Our doubt
 is our passion and our passion is our task.  The rest is the madness of
 art."  - Henry James    [donaldh@speedway.net]

From crash!clout.chi.il.us!amiserv!bbs1984!jkelly Thu, 22 Jul 93 05:41:15 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 22 Jul 93 05:41:15 PST
Received: from clout.chi.il.us by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oIyI4-0000AxC; Thu, 22 Jul 93 03:54 PDT
Received: from amiserv by clout.chi.il.us with uucp
	(Smail3.1.28.1 #1) id m0oIyHt-000A7zC; Thu, 22 Jul 93 05:54 CDT
Received: from bbs1984 by amiserv.xnet.com with uucp
	(Smail3.1.28.1 #1) id m0oIyF9-000i9YC; Thu, 22 Jul 93 05:51 CDT
Received: by bbs1984.chi.il.us (V1.16/Amiga)
	id AA003ru; Wed, 21 Jul 93 23:20:40 CST
Date: Wed, 21 Jul 93 23:20:40 CST
Message-Id: <9307220520.AA003rt@bbs1984.chi.il.us>
From: jkelly@bbs1984.chi.il.us (Jim Kelly)
To: amigae@bkhouse.cts.com
Subject: AmigaE MaIlInG LiSt!

SUBSCRIBE jkelly@bbs1984.chi.il.us

(^^ To make things easier ^^)

Hi there!  Sign me up for the mailing list.

Thanx!

 ________________________............................________________________
 \                       \........OBI WAN.........../                       /
 /\.  MaY ThE FoRcE  ____/..........of..............\____   Be WiTh YoU!  ./\
 \__________________/............ACME INC................\__________________/

From crash!cs.vu.nl!velschot Thu, 22 Jul 93 05:41:19 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 22 Jul 93 05:41:19 PST
Received: from top.cs.vu.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oIyjC-0000jHC; Thu, 22 Jul 93 04:22 PDT
Received: from galjoen.cs.vu.nl by top.cs.vu.nl id aa26278;
          22 Jul 93 13:22 MET DST
Date:     Thu, 22 Jul 93 13:22:06 MET DST
cc:       amigae@bkhouse.cts.com
Message-ID:  <9307221322.aa04344@galjoen.cs.vu.nl>
From: Elschot VAW <velschot@cs.vu.nl>
To: D.Higginson@axion.bt.co.uk
Subject: Re:  HAM mode

hello!
	I'm not exactly on the lookout for info in HAM,
but I would very much like some info (or a routine)
on how to write an IFF picture to disk,
or even better, on how to create an IFF file from raw data.
I have a flatbed scanner at home, and I can create nice pics on the screen,
but I can't yet save them to disk in a format that e.g.Dpaint will understand.

thanx!
vinny

From crash!UNCA.EDU!JVANRIPER Thu, 22 Jul 93 07:42:00 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 22 Jul 93 07:42:00 PST
Received: from uncavx by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJ0Mz-00007MC; Thu, 22 Jul 93 06:07 PDT
Received: from UNCA.EDU by UNCA.EDU (PMDF V4.2-11 #3902) id
 <01H0U5F9AFAU8WWJLH@UNCA.EDU>; Thu, 22 Jul 1993 09:04:22 EDT
Date: Thu, 22 Jul 1993 09:04:21 -0400 (EDT)
Message-id: <01H0U5F9AFAW8WWJLH@UNCA.EDU>
Organization: University of North Carolina at Asheville
X-VMS-To: IN%"amigae@bkhouse.cts.com"
MIME-version: 1.0
Content-type: TEXT/PLAIN; CHARSET=US-ASCII
Content-transfer-encoding: 7BIT
From: "Joseph E. Van_Riper III" <JVANRIPER@UNCA.EDU>
To: amigae@bkhouse.cts.com
Subject: Re: Help with datestamps


I think he typed something like:

----8<----8<----

MODULE 'dos/dos', 'dos/datetime'

PROC main()

DEF date : PTR TO datetime,

    s[10] : ARRAY OF CHAR

    date := New(SIZEOF datetime)
    date.stamp := New(SIZEOF datestamp)
    date.stamp := DateStamp(date.stamp) /*If doing it this way, try*/
    date.strdate := s                  /* just 'DateStamp(date.stamp)'*/
    DateToStr(date)                    /* without the assignment.*/
    WriteF('date: \s\n',s)

ENDPROC

----8<----8<----
I tried something like this, too, and found it didn't work.

I think the reason why is E doesn't know that date.stamp is supposed to be of
object datestamp, so when you try to date.stamp:=DateStamp(date.stamp), it
fails.  The following code has worked very well for me:


PROC whatever()
 DEF dt:datetime 
  DateStamp(dt.stamp)
  dt.format:=FORMAT_DOS /* set datetime options */
  dt.flags:=0
  dt.strday:=String(10)
  dt.strdate:=String(10)
  dt.strtime:=String(10)
  DateToStr(dt)         /* make into string */

/*whatever*/

ENDPROC

You can Dispose() of dt.strday/dt.strdate/dt.strtime if you want to keep from
losing room (say, in a program that will be calling on this routine fairly
regularly for a good while).  For the program I'm working on, however, this was
adequate.

Hope it's helpful.

- Trey

From crash!axion.bt.co.uk!D.Higginson Thu, 22 Jul 93 07:42:09 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 22 Jul 93 07:42:09 PST
Received: from zaphod.axion.bt.co.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJ0lM-00002KC; Thu, 22 Jul 93 06:32 PDT
Received: from elephant.axion.bt.co.uk by zaphod.axion.bt.co.uk with SMTP (PP); Thu, 22 Jul 1993 14:32:06 +0100
Message-Id: <m0oJ0lM-00002KC@crash.cts.com>
Date: Thu, 22 Jul 93 14:32:00 BST
From: D.Higginson@axion.bt.co.uk
To: amigae@bkhouse.cts.com
Cc: D.Higginson@axion.bt.co.uk
Subject: HAM8 mode


A few people have mailed me wishing information about HAM8
mode, so here goes:

(Please feel free to correct me if I say anything that is
untrue, because my Amiga is currently about 230 miles away
-I'm working away from home.)

HAM mode is available in 2 forms - the original HAM mode
(HAM6) and the AGA HAM mode (HAM8). Of course you will
need the AGA chips to use HAM8 (A1200/A4000), but HAM6 is
available on all Amigas.

The number in the name indicates how many planes are used
to make the image - HAM 6 uses 6 planes. If you don't
understand this, what it basically means is that every
pixel can have a value from 0 to 63. HAM 8 uses 8 planes
which means there are 256 possible values for each pixel.

Whichever HAM mode you use, the theory is essentially the
same. One quarter of these values signify a colour in the
same way as other screen modes. So, colours 0-15 in HAM6
are mapped using a palette (like in DPaint). In this way,
HAM6 behaves like a 16 colour screen and HAM8 like a 64
colour screen.

The difference lies in the way the other colours are used.
I will explain this using HAM6, and then show you how to
adapt it for HAM8.

Colours 16-31 (the second 16 colours) tell the display
chips to modify the amount of BLUE in the colour. The
colour is HELD from the pixel immediately to the left and
the MODIFIED (Hold And Modify). For example, suppose you
have a pixel with value 0, which happens to be black (for
argument's sake). To the right of this is a pixel with
value 24. This tells the system to modify the blue
component. The amount of blue is calculated by subtracting
16. So, this pixel would have colour $008, or medium blue.

Colours 32-47 modify the RED component (if I remember
correctly), and colours 48-63 modify the GREEN component.
These work in the same way, e.g. 32 equals no red, 47
equals maximum red, 48 equals no green, 63 equals maximum
green.

It is possible for this to continue across the screen by
modifying each colour component separately. If at any time
a pixel has a value between 0 and 15, the process begins
again, with the colour for that pixel being taken from the
palette.

Here is an example. Assume that colour 0 is black ($000),
colour 1 is white ($FFF) and colour 2 is grey ($777) - if
you want to now how to set these it can be done using the
LoadRGB4() Intuition routine - see the example E sources
for ... er ... examples.

-----------------------------------------------------
Step (for ref.)      A    B    C    D    E    F    G
X,Y                 0,0  1,0  2,0  3,0  4,0  5,0  6,0
Pixel value (dec)   00   01   22   02   47   57   21
Colour (hex)       $000 $FFF $FF6 $777 $F77 $F97 $F95
-----------------------------------------------------
Colour values here are given as hex value in the standard
Amiga form $RGB. Now I'll explain each step :

A: A vlaue of 0 means the pixel gets its colour from the
palette, which as mentioned previously means that in this
case the pixel turns out to be black.

B: The same here, a value of 1 is between 0 and 15.

C: Here the value is between 16 and 31, so the blue
component is modified. 22 is the 6th number in the range
(counting from 0), so the blue component is changed to 6.
Hence $FFF becomes $FF6.

D: A value between 0 and 15 again means that the colour
comes from the palette, which happens to make the pixel
grey ($777) in this case.

E: 47 is between 32 and 47, so this time the red component
is changed to $F, so $777 becomes $F77.

F: The green component is changed by the number 57. It
does not matter that the previous colour ($F77) is already
modified, changes happen to that colour. $F77 becomes $F97
since 57 is the 9th number between 48 and 63.

G: This shows the blue component again being modified.
This time the colour $F95 did not even have one of its
colour components defined by the palette. In other words,
this colour would still be $F95 even if the original
colour from the palette was changed.

 From this you can see that you need a maximum of 3 pixels
to get any colour in the Amiga's 4096 range. This is what
causes the 'fringing' effect seen on HAM pictures. If you
were to write a paint program using HAM, you would need an
intelligent algorithm that would determine which colour in
the palette is the closest to that needed, and what order
to change the components in to reduce fringing.

But how does HAM8 work?

The principle is the same, except that you multiply
everything by 4. The first 64 colours come from the
palette, colours 64-127 change BLUE, 128-191 change RED
and 192-255 change GREEN. Also, note that if you choose,
say value 65, the blue value will not be 1, but $04. This
is because AGA colours range from $00 to $FF. Colour 66
equals a blue of $08 and so on...

There are limitations on HAM6 mode on non-AGA machines.
The poor old Agnus is not quick enough to fetch enough
data from screen memory to display a HI-RES (i.e. 640
pixels across) HAM screen. On the 1200, this is possible
because Alice is twice as quick as Agnus and can also
fetch twice as much data at the same time. This makes it
possible to open a HIRES HAM8 screen!

How to open a HAM screen?

That's simple, all you do is to OR the screen's DISPLAY ID
with the value $800. If you want HAM6, specify 6 planes,
if you want HAM 8 specify 8 planes. Simple really...

In Amiga E, a HAM8 screen goes like this:

.
.
DEF s:PTR TO screen
.
.
s:=OpenS(640,256,8,$8800,'Wow!')
.
.

I think I've got the parameters the right way round, but
begin separated from my Amiga :'-( [sniff], I can't be
sure, so check the reference guide. Don't forget to
declare the right modules if you want to use system
constants like HIRES_KEY, but really you can get away
without these.

I hope I've included enough information for you all to
browse (or should that be wade) through. If there's
anything missing that you'd like to know, I can *try* to
answer any requests...

I have written an AGA colour cube program (similar to
Photon Paint's) if anyone is interested. I'll have to make
a visit home to get the source. It's not particularly
multi-tasking friendly, so I'll tidy it up in the meantime
(don't want to teach anyone bad habits :-)

See ya!

Dave

P.S. Let me know if you try any of this info out
successfully. Also, don't be surprised if I've got the RED
and GREEN pixel values the wrong way round - I am working
from memory after all :-)

From crash!cislabs.pitt.edu!cjfst4 Thu, 22 Jul 93 11:42:09 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 22 Jul 93 11:42:09 PST
Received: from phantom.cislabs.pitt.edu by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJ4Ko-0000JqC; Thu, 22 Jul 93 10:21 PDT
Received: from meg.cislabs.pitt.edu by phantom.cislabs.pitt.edu (4.1/1.34)
	id AA21056; Thu, 22 Jul 93 13:21:33 EDT
Received: by meg.cislabs.pitt.edu (4.1/EMI-2.1)
	id AA02629; Thu, 22 Jul 93 13:21:32 EDT
Message-Id: <9307221721.AA02629@meg.cislabs.pitt.edu>
Date: Thu, 22 Jul 1993 13:21:31 -0400 (EDT)
X-Mailer: ELM [version 2.4 PL21]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 147
From: cjfst4@cislabs.pitt.edu
To: amigae@bkhouse.cts.com (Amiga-E List)
Subject: Datestamps: thanks all

Thanks to everyone who had input on the datestamp thing.  Now, the
question is, _should_ my version work, and why doesn't it?

Thanks again,
Chad

From crash!UNCA.EDU!JVANRIPER Thu, 22 Jul 93 11:42:28 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 22 Jul 93 11:42:28 PST
Received: from uncavx by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJ5CS-0000XbC; Thu, 22 Jul 93 11:17 PDT
Received: from UNCA.EDU by UNCA.EDU (PMDF V4.2-11 #3902) id
 <01H0UFUYW8RK8WWL6A@UNCA.EDU>; Thu, 22 Jul 1993 14:03:30 EDT
Date: Thu, 22 Jul 1993 14:03:30 -0400 (EDT)
Message-id: <01H0UFUYX1PE8WWL6A@UNCA.EDU>
Organization: University of North Carolina at Asheville
X-VMS-To: IN%"amigae@bkhouse.cts.com"
MIME-version: 1.0
Content-type: TEXT/PLAIN; CHARSET=US-ASCII
Content-transfer-encoding: 7BIT
From: "Joseph E. Van_Riper III" <JVANRIPER@UNCA.EDU>
To: amigae@bkhouse.cts.com
Subject: Path Madness from Hell


	I've been looking through the Includes and Autodocs for an easy
solution to my problem, but it looks hopeless.  Maybe one of you guys know
something I don't.

	I'm trying to write a program that may be called from either WB or CLI. 
I suppose, since I'm more familiar with working from the CLI, I find it easier
to program with that in mind.. certainly, there are less hassles <grin>.

	I want my program to call another program, with an argument, and print
any text it should decide to print to stdout.  I am keeping in mind that, from 
the WB, I have to WriteF('') to create a stdout for the program to use.

	Oddly enough, I/O is NOT my problem.  My problem is in determining a
path through which to search for the command.

	When run from CLI, the CLI's current path settings is passed to the new
process with either SystemTagList() or Execute() (note: I prefer SystemTagList
by far... much more flexibility than Execute, although it appears that Execute
works better with WB).

	But, when run from WB, the current path settings are NOT transferred to
the program (perhaps because Workbench doesn't have path settings, and can
therefore not give them to the process).

	As a result, any user who decides to use my program MUST specify an
exact path to the command they want to run in the tooltypes... they cannot rely
on a path to make things easier for them.  I find it somewhat difficult to
believe that there is no way to get a path from WorkBench; how does WB manage
to find commands specified in the icon (eg: if I have an icon with a default
tool of "amigaguide", it figures out that my copy of amigaguide is in the
sys:utilities directory, yet if my program, when run from workbench, tries to
Execute() or SystemTagList() 'amigaguide', it cannot figure out that the
command is in the sys:utilities directory).

	Any suggestions, or am I actually going to have to do a FindCli search
from 1 to MaxCli(), finding a CLI running Workbench, then peek into its path
thingy (ugly ugly ugly.. I don't wanna do it <bawl>)?

- Trey

From crash!kirk.safb.af.mil!BWILLS Thu, 22 Jul 93 19:46:38 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 22 Jul 93 19:46:38 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJBiW-0000fAC; Thu, 22 Jul 93 18:14 PDT
Message-Id: <m0oJBiW-0000fAC@crash.cts.com>
Date: 22 Jul 93 20:12:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: re: Help with DateStamp

/***

I hope someone can help me with this problem...I can't seem to get
DateStamp and DateToStr working right <sigh>.  I keep on getting an
'illegal use of/reference to object' on this line:

    date.stamp := New(SIZEOF datestamp)

----8<----8<---- ***/

MODULE 'dos/dos', 'dos/datetime'

PROC main()

DEF date : PTR TO datetime,
    s[10] : ARRAY OF CHAR

    date := New(SIZEOF datetime)
/*===============================================*/
/*  REPLACE THESE TWO LINES...                   */
/*  date.stamp := New(SIZEOF datestamp)          */
/*  date.stamp := DateStamp(date.stamp)          */
/*===============================================*/
/*  ...WITH THIS ONE...                          */
    VOID DateStamp(date.stamp)
/*===============================================*/
/*  BECAUSE... [Partial output from ShowModule:]
(---) OBJECT datetime
(  0)   stamp:substructure   == 12 bytes (this is automatic,
( 12)   format:CHAR                       no need to allocate!)
( 13)   flags:CHAR
( 14)   strday:LONG
( 18)   strdate:LONG
( 22)   strtime:LONG
(---) ENDOBJECT     /* SIZEOF=26 */
=================================================*/

    date.strdate := s
    DateToStr(date)
    WriteF('date: \s\n',s)

ENDPROC

From crash!cup.portal.com!Politikill Thu, 22 Jul 93 19:46:46 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 22 Jul 93 19:46:46 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJCaX-0000IoC; Thu, 22 Jul 93 19:10 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.381) 
	id AA13640; Thu, 22 Jul 93 19:14:17 -0700
Received: from hobo  by portal.unix.portal.com (1.684) 
	id AA24661; Thu, 22 Jul 93 19:14:15 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA27009; Thu, 22 Jul 93 19:14:14 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 50
Date: Thu, 22 Jul 93 19:14:12 PDT
Message-Id: <9307221914.2.20342@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Armageddon in E!

Hi! 

    I have been using E for about a month, and in that time have run into a
few problems (bugs? or just ignorance? :-) 

    A friend and I have been stumped on two problems:

    (1) The first one is adding nodes to a Listview from Gadtools in a loop. 
I had a project I was working on (subsequently scrapped) that needed a text
file to be read in line by line (ReadStr in a loop) and that line then added
to my listview. I was reading in the file before making the gadget. What I was
doing was passing AddTail while in the loop, but for some strange reason, the
list view would only appear with the LAST line passed by the loop.  When I
used addtail outside of the loop, it worked perfectly, but it would be crazy
to hardcode all of what I wanted directly into the program (2500+ taglines!)

    I would still very much like to know how to get this working, even though
that project has been dumped (my new QWK reader supports taglines, and so does
my new Point-Mail reader)...as I will probably encounter this again.

    (2) Here is the one that is currently screwing me up: A friend and I are
working on an interface to E. (the "E Development System") When finished, it
is going to revise the source (with time and date stamp, along with
comments--already got most of this working) and call the text editor (perhaps
have a built in one(?)) and be able to run any options the user has (EPP).  It
has a very lovely, multi-window interface, all done in gadtools.  The problem
is getting IDCMP messages from the different windows.  Right now I am using
a modified version of the wait4message from the examples, using
IDCMP_INACTIVEWINDOW to switch the window ptr being passed to wait4msg.  This
is very clumsy (often I have to click in and out of windows before a gadget
passes the message).  My friend is using converted C source doing it the
"right way" (modifying IDCMP), but I have not yet gotten this source to look
at, and it keeps crashing on him when he closes the windows. (We have looked
at everything - calling modifyidcmp w/ NIL as the arg, CloseWindowSafely, and
all that junk) but it is still not working for him.  I cannot use this, cause
it would kill me haveing to wait for a reboot (not even gives a failed req!)
when trying out new code.

    This one is of VITAL importance. Both of these Qs are probably being
posted simultaneously here by my partner in crime, George Beasly. Just reply
to one of us...

 / / /
/_/_/iZ

*-- The Gamma Quadrant --*


*-- GammaTag Version 2.8 --*
*-- *-- DOS ERROR: Please remove cat from drive DF0:...

From crash!cs.vu.nl!velschot Fri, 23 Jul 93 07:46:07 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 23 Jul 93 07:46:07 PST
Received: from top.cs.vu.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJO9n-0000q0C; Fri, 23 Jul 93 07:31 PDT
Received: from galjoen.cs.vu.nl by top.cs.vu.nl id aa21303;
          23 Jul 93 16:31 MET DST
Date:     Fri, 23 Jul 93 16:31:12 MET DST
cc:       amigae@bkhouse.cts.com
Message-ID:  <9307231631.aa27390@galjoen.cs.vu.nl>
From: Elschot VAW <velschot@cs.vu.nl>
To: D.Higginson@axion.bt.co.uk
Subject: Re:  HAM8 mode

hello,
	gee, I must recap on my english... union is supposed to
be that round vegetable that makes you vry when you cut it...
	pfff I've been working too hard!
	see you soon!
	hugs!
vinny

From crash!cs.vu.nl!velschot Fri, 23 Jul 93 07:46:11 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 23 Jul 93 07:46:11 PST
Received: from top.cs.vu.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJOJo-00004HC; Fri, 23 Jul 93 07:41 PDT
Received: from galjoen.cs.vu.nl by top.cs.vu.nl id aa21453;
          23 Jul 93 16:41 MET DST
Date:     Fri, 23 Jul 93 16:41:44 MET DST
Message-ID:  <9307231641.aa01637@galjoen.cs.vu.nl>
From: Elschot VAW <velschot@cs.vu.nl>
To: amigae@bkhouse.cts.com
Subject: Serial Port (still?)

Hello folks,
I've been struggling with a problem that I ran into a 
few weeks back, and I still have no solution...
anyone?

	this is it: I need a procedure that will read
data from the serial port, but first checks if there is
any data to be read...  I'm not (yet) very familiar with
the deep and mysterious ways of the Amiga's Kernel things,
and I still run under 1.3, so please, ANY info welcome!

please?

vinny
velschot@cs.vu.nl

From crash!cs.vu.nl!velschot Fri, 23 Jul 93 11:53:46 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 23 Jul 93 11:53:46 PST
Received: from top.cs.vu.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJQWR-0000X6C; Fri, 23 Jul 93 10:03 PDT
Received: from galjas.cs.vu.nl by top.cs.vu.nl id aa22987;
          23 Jul 93 19:02 MET DST
Date:     Fri, 23 Jul 93 19:02:55 MET DST
Message-ID:  <9307231902.aa16876@galjas.cs.vu.nl>
From: Elschot VAW <velschot@cs.vu.nl>
To: amigae@bkhouse.cts.com
Subject: okay, flame me...

ok, so I eccandentally mailed you personal mail... :)
sorry!

vinny

From crash!Ra.MsState.Edu!djm2 Fri, 23 Jul 93 11:53:50 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 23 Jul 93 11:53:50 PST
Received: from Ra.MsState.Edu by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJQXy-0000HBC; Fri, 23 Jul 93 10:04 PDT
Received: by Ra.MsState.Edu (5.65c/6.5m-FWP);
           id AA11055; Fri, 23 Jul 1993 12:04:33 -0500
Date: Fri, 23 Jul 1993 12:04:33 -0500
Message-Id: <199307231704.AA11055@Ra.MsState.Edu>
From: Daniel Jr Murrell <djm2@Ra.MsState.Edu>
To: amigae@bkhouse.cts.com
Subject: ReadArgs()

Hi,
  First of all, this list is great- a lot more traffic than I would
have thought.  I was busy setting up a pd C compiler, when I found out
about the list, but now that help is available to me, I deleted it.. :)

  Ok, my question is about the readargs.e example.  Is it correct, and if
so, how does it work?  None of the parameters I've given it return anything
but "Bad Args!"  The source is short, so could someone please post it,
and tell exactly what each line does, as well as some sample calls to it?
I'd really appreciate it..

Dan
djm2@ra.msstate.edu

From crash!mars.let.uva.nl!wouter Fri, 23 Jul 93 19:44:30 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 23 Jul 93 19:44:30 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJYeg-0000ZcC; Fri, 23 Jul 93 18:44 PDT
Received: by mars.let.uva.nl id AA01348
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Sat, 24 Jul 1993 03:47:52 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Sat, 24 Jul 1993 03:47:52 +0200
Message-Id: <199307240147.AA01348@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: Listviews and windows

>> Hi! 
>> 
>>     I have been using E for about a month, and in that time have run into a
>> few problems (bugs? or just ignorance? :-) 
 
judge for yourselves... :-)
 
>>     A friend and I have been stumped on two problems:
>> 
>>     (1) The first one is adding nodes to a Listview from Gadtools in a loop
>> I had a project I was working on (subsequently scrapped) that needed a text
>> file to be read in line by line (ReadStr in a loop) and that line then added
>> to my listview. I was reading in the file before making the gadget. What I wa
 
>> doing was passing AddTail while in the loop, but for some strange reason, the
>> list view would only appear with the LAST line passed by the loop.  When I
>> used addtail outside of the loop, it worked perfectly, but it would be crazy
>> to hardcode all of what I wanted directly into the program (2500+ taglines!)
 
It's very likely that you are using a statement of the form:
 
AddTail(mylist,[...data..for..new..node...])
 
a structure like [] is a static structure, i.e. the memory it's
in is not created at run time. because of this, every iteration
of your loop, you overwrite the previous values, and pass the
same structure to AddTail()! Instead, allocate each time a new node
 
New(SIZEOF ln)
 
and then fill it, and pass it to AddTail().
 
>>     I would still very much like to know how to get this working, even though
>> that project has been dumped (my new QWK reader supports taglines, and so doe
 
>> my new Point-Mail reader)...as I will probably encounter this again.
>> 
>>     (2) Here is the one that is currently screwing me up: A friend and I are
>> working on an interface to E. (the "E Development System") When finished, it
>> is going to revise the source (with time and date stamp, along with
>> comments--already got most of this working) and call the text editor (perhaps
>> have a built in one(?)) and be able to run any options the user has (EPP).  I
 
>> has a very lovely, multi-window interface, all done in gadtools.  The problem
>> is getting IDCMP messages from the different windows.  Right now I am using
>> a modified version of the wait4message from the examples, using
>> IDCMP_INACTIVEWINDOW to switch the window ptr being passed to wait4msg.  This
>> is very clumsy (often I have to click in and out of windows before a gadget
>> passes the message).  My friend is using converted C source doing it the
>> "right way" (modifying IDCMP), but I have not yet gotten this source to look
>> at, and it keeps crashing on him when he closes the windows. (We have looked
>> at everything - calling modifyidcmp w/ NIL as the arg, CloseWindowSafely, and
>> all that junk) but it is still not working for him.  I cannot use this, cause
>> it would kill me haveing to wait for a reboot (not even gives a failed req!)
>> when trying out new code.
 
I have no clue what's crashing your machine, I'd need the code for that.
 
I can help you with the windows, though:
Here's how you wait for messages from various windows:
 
method one:
 
- OR the sigbits from all windows involved into a variable "allsigs"
- in a loop, perform a Wait(allsigs)
- in a loop within that one, call GetMsg() in sequence on items
  of a list of ports (window.userport), until all have been processed.
 
you can see from intuimessage.idcmpwindow which window
actually caused the message.
 
method two.
 
if you don't want to wait for more than one port, you can CreatePort()
your own, and connect all windows you open with this one port.
you'll then receive all messages here, and can decide which it
was from like in method one. How this is done in detail is
on page 254 of the RKRM libraries 3rd ed.
 
>>     This one is of VITAL importance. Both of these Qs are probably being
>> posted simultaneously here by my partner in crime, George Beasly. Just reply
>> to one of us...
>> 
>>  / / /
>> /_/_/iZ
>> 
>> *-- The Gamma Quadrant --*
>> 
>> 
>> *-- GammaTag Version 2.8 --*
>> *-- *-- DOS ERROR: Please remove cat from drive DF0:...
 
miauw!
 
Wouter
 
   ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
 / __/    wenn er wahr ist" - Wittgenstein
/___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-

From crash!mars.let.uva.nl!wouter Fri, 23 Jul 93 19:44:33 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 23 Jul 93 19:44:33 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJYfH-0000PlC; Fri, 23 Jul 93 18:44 PDT
Received: by mars.let.uva.nl id AA01352
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Sat, 24 Jul 1993 03:48:30 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Sat, 24 Jul 1993 03:48:30 +0200
Message-Id: <199307240148.AA01352@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: Part II: future of E

 
Hello All,
 
I feel like it would be nice to keep sharing with you all the
new developments that lead up to v2.5, as features become reality.
earlier I outlined the new features of v2.3g, I'll now let you all
in on new developments in the interim version v2.4a (not for release).
 
So what's new in v2.4? They main keyword here is "code optimisations".
that's right, lot's of new functions have been build into EC to
produce radically better code from your sources. Some of you we're
already very impressed by the code generated by v2.1b (or atleast
satisfied with it :-), but v2.4b greatly improves on this.
 
As demonstated very well by Son Le some mails back, there are
extreme situations in which EC v2.1b could deliver much worse code
than, for example, SAS/C with full optimisation on. The reason
for this is twofold, and both are largely remedied by v2.4:
 
- v2.1b did not put variables in registers, thus code that depends
  largely on the time needed to access a variabele would be slower.
  v2.4 allows to put upto 5 variables per PROC in registers,
  thus giving an enormous speedup in tight loops.
 
- v2.1b did only little checks to see if it could optimize instructions
  away. v2.4 now tries various ways to write the code different,
  reorganise it, or remove it alltogether. also it optimizes on
  function calls etc., by directly moving certain types of
  expressions in registers. This both reduces code size, and increases
  speed of executables. with the new OPT 020, it can do even more.
 
result is code that is very tight, and often code that can hardly
be improved by hand-optimisations, nor beaten by other top-amiga
compilers. And the fun thing is, that good code generation and
and global optimising often can slow compilers down, but EC v2.4 still
is much faster than v2.1b!
 
Hope this gives you all yet another nice idea of what's coming,
 
Wouter.
 
   ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
 / __/    wenn er wahr ist" - Wittgenstein
/___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-

From crash!cup.portal.com!Politikill Fri, 23 Jul 93 19:44:37 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 23 Jul 93 19:44:37 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJYts-0000NzC; Fri, 23 Jul 93 18:59 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.383) 
	id AA20264; Fri, 23 Jul 93 19:03:45 -0700
Received: from hobo  by portal.unix.portal.com (1.685) 
	id AA10884; Fri, 23 Jul 93 19:03:43 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA10092; Fri, 23 Jul 93 19:03:41 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 42
Date: Fri, 23 Jul 93 19:03:40 PDT
Message-Id: <9307231903.1.886@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Re: Amiga E Mailing List

>Let me know if the FIDO conference ever takes off. USENET still has the
>most Amiga users and E programmers on it, but FIDO might one day get
>something going too. Unfortunately, I find that FIDO conferences are
>not the highest quality in terms of professional discussions, but there
>have been exceptions.

    Yeah, well, right now most of it is in the main programming conference,
mixed in with C and ASM and even BASIC msgs.  Mostly people asking what the
latest version is, etc. I like the main AMIGA conference (@ 14,4 w/ QWk I can
ahndle 300+ msgs a day from one conf :-) on Fido, and also the video conf is
nice (main pre-"occupation"). 

>The "automatically added Reply-To header" is broken at the moment for
>some people. I haven't yet figured out why it adds the header for some
>messages and not for others. On the other hand, since the mailing list
>handling software is something I wrote myself in E, I guess there's no
>one else to blame but me. :)  Anyway, when my work load lets up a bit,
>I'll fix it. Until then, be sure to mail all list postings to
>amigae@bkhouse.cts.com.

    No problem....at least it knows who the message was from originally. It
just takes a few seconds more when replying. 

>I have an archive of all the messages since the list began. It's a little
>over 500K uncompressed. If you want it, I can LHA and UUENCODE it and send
>the archive your way. It contains a lot of source code that was posted
>in the first three weeks of the list (which is only about two months old
>now).

Sure...just wait until the weekend, otherwise I would be tempted to actually
call up LD to get it :-)  Once I get it, I'll make an Amigaguide version of it
grouping the source by problems and such...make it nice and neat for all the
people out there who don't have internet. 

 / / /
/_/_/iZ

*-- The Gamma Quadrant --*


*-- GammaTag Version 2.8 --*
*-- God loves you; everyone else thinks you're an ass

From crash!cup.portal.com!Politikill Fri, 23 Jul 93 19:44:39 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 23 Jul 93 19:44:39 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJYu6-0000ebC; Fri, 23 Jul 93 19:00 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.383) 
	id AA20278; Fri, 23 Jul 93 19:03:55 -0700
Received: from hobo  by portal.unix.portal.com (1.685) 
	id AA10900; Fri, 23 Jul 93 19:03:54 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA10129; Fri, 23 Jul 93 19:03:53 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 57
Date: Fri, 23 Jul 93 19:03:51 PDT
Message-Id: <9307231903.2.886@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Re: Armageddon in E!

>here are the solutions:
>
>When you use AddTail, I am assuming you do something like
>this:
>
>AddTail([0,0,0,0,'Text']:ln)

    Exactly! Only 'text' is a variable from ReadStr (just found out about a
new ReadStr proc someone made that is _8_ times faster than E's!...gotta go
get it!) I am using AddTail(listv,[0,0,0,0,textvar]:ln) for it. 

>This will work perfectly under normal circumstances, but
>if you put it in a loop, it won't. This is because when
>the program is compiled, the memory in the square brackets
>is allocated as part of the program. So, if you call it
>several times it is the same piece of memory that you are
>changing. Make sense?

    I gotcha so far.

>To remedy this, use the New() function. Then you can
>allocate memory for as many nodes as you like. When you
>have finished, use the dispose function to get rid of the
>nodes.

    I get what your saying, but not so clear on how I would implement it. 
Would I do 'listv:=New(nodes*80)' (80 being for max chars in line) ?

>Problem 2:
>
>What you need to do is decide whether you are going to use
>a single message port or one for each window. When I do
>this, I find that one for each window is better. These
>ports are automatically created by Intuition when you open
>a window. You only need one wait4msg routine to handle all
>the windows.

    Great! This looks like exaclty what I need.  Not at all what the RKMs say
is the system friendly way, but should do the job very nicely, thank you!

>Find out the mp_sigbit of each window, then create the
>mask for that window using Shl(). When you OR these values
>together, you have a signal mask that will return to your
>program when any window sends a message. Like this:

>Hope this helps!

    Should work perfectly.  Will have to go try it before I venture out to our
counnty fair tonight! :-)

 / / /
/_/_/iZ

*-- The Gamma Quadrant --*

*-- GammaTag Version 2.8 --*
*-- Irony:  Millie Vanilli on a Karaoke machine...

From crash!genie.geis.com!g.beasley2 Sat, 24 Jul 93 07:44:09 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sat, 24 Jul 93 07:44:09 PST
Received: from vmbb.cts.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJk5X-0000W9C; Sat, 24 Jul 93 06:56 PDT
Received: from relay2.geis.com by vmbb.cts.com with smtp
	(Smail3.1.28.1 #9) id m0oJk5S-0002FhC; Sat, 24 Jul 93 06:56 PDT
Received: by relay2.geis.com
	(1.37.109.4/15.6) id AA08853; Sat, 24 Jul 93 14:56:56 +0100
Message-Id: <9307241356.AA08853@relay2.geis.com>
Date: Sat, 24 Jul 93 14:39:00 BST
X-Genie-Id: 1409962
X-Genie-From: G.BEASLEY2
From: g.beasley2@genie.geis.com
To: amigae@bkhouse.cts.com
Subject: Listviews and windows

Reply:  Item #1956647 from WOUTER@MARS.LET.UVA.NL@INET#
 
Thanks for the help Wouter.  You are exactly write about the
listviews.  Thanks.
 
As for the problem with multiplie open windows, I had been using the
second methode (sharing a single message port).  I followed step for
step the RKM guides rules on how to do it (I am translating a program
that I wrote in C to E so I have done this before in other
languages), but I could not get it to work in E.  The program shared
the port fine and I got all of the proper information from intuition,
ubtil I close a window, then my computer locks up.  I know about
CloseSafely.  Here is my version of it for E:
 
PROC closeSafe( win )
  DEF msg:PTR TO intuimessage,
      wnd:PTR TO window
 
  wnd:=win
 
  Forbid( )
 
  WHILE msg:=Gt_GetIMsg( wnd.userport )
    Gt_ReplyIMsg( msg )
  ENDWHILE
 
  Permit( )
 
  CloseWindow( wnd )
ENDPROC
 
The first methode that you described (using Wait() with multiple
masks) works great and I will continue to use that methode.  Thanks
for the info, its been a great help.
 
BEANMAN...
 
 

From crash!genie.geis.com!g.beasley2 Sat, 24 Jul 93 07:44:11 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sat, 24 Jul 93 07:44:11 PST
Received: from relay2.geis.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJk7I-0000WUC; Sat, 24 Jul 93 06:58 PDT
Received: by relay2.geis.com
	(1.37.109.4/15.6) id AA08903; Sat, 24 Jul 93 14:58:57 +0100
Message-Id: <9307241358.AA08903@relay2.geis.com>
Date: Sat, 24 Jul 93 14:39:00 BST
X-Genie-Id: 8476808
X-Genie-From: G.BEASLEY2
From: g.beasley2@genie.geis.com
To: amigae@bkhouse.cts.com
Subject: Re: Armageddon in E!

Reply:  Item #4395553 from POLITIKILL@CUP.PORTAL.COM@INET#
 
Here is a little goodie that someone posted in the
AmigaNet:Programming conference.  I am not sure if it has been posted
here yet, but it works well some here it is:
 
MODULE 'dos/dos'
 
PROC readStr(handle, buffer)
  DEF bytes, size, eof=FALSE
  bytes:=Read(handle, buffer, StrMax(buffer))
  size:=bytes
  IF InStr(buffer, '\n', 0) > -1
    Seek(handle, -(bytes - InStr(buffer, '\n', 0)-1), OFFSET_CURRENT)
    bytes:=InStr(buffer, '\n', 0)
  ELSE
    IF size < StrMax(buffer) THEN eof:=TRUE
  ENDIF
  buffer[bytes]:=0
ENDPROC eof
 
This is a replacement for v2.1b's ReadStr() function.  This one is
generally 4 to 8 times faster and functions identically to E's.
 
Check it out.
 
BEANMAN...
 

From crash!kirk.safb.af.mil!BWILLS Sat, 24 Jul 93 19:45:30 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sat, 24 Jul 93 19:45:30 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oJv94-0000d0C; Sat, 24 Jul 93 18:45 PDT
Message-Id: <m0oJv94-0000d0C@crash.cts.com>
Date: 24 Jul 93 20:41:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: ReadStr() Study

This archive contains 8 programs which compare ReadStr() algorithms:
  ReadStr-std-1.e:  E's ReadStr() behaviour reading from stdout.
  ReadStr-std-2.e:  posted readStr() behaviour reading from sdtout.
  ReadStr-std-3.e:  my readStr() behaviour reading from stdout.
  rwt1.e:  read/write ascii file, E's ReadStr().
  rwt2.e:  read/write ascii file, posted readStr().
  rwt3.e:  read/write ascii file, my readStr() without using enhancement.
  rwt4.e:  read/write ascii file, my readStr() using enhancement.
  rwt5.e:  read/write ascii file, my buffered readStr() (from EPP.)

Well, I couldn't resist the temptation.  When I saw the ReadStr() routine
posted with such a bold claim (8x faster) I had give it the acid test.  It
is indeed very fast.  But I found some surprising facts.  First, it's close
but not completely compatible with E's ReadStr().  The only real difference
is how it handled input strings that are longer than the target string.  This
is most evident in the test ReadStr-std-2.e, reading from stdout.  I saw some
redundant function calls and variable assignments, so I modified it, making
the routine faster.  I think it behaves exactly like E's ReadStr() now.  My
buffered readStr() from EPP kicked everyone's butt, which surprised the heck
out of me since I was hoping to get a faster routine from all this! :-)

What it all boils down to is:  I tested these in ram on E's Reference.doc,
about 93k, with a 68030 and a 68000.  Here are the results:

            030  ticks    000  ticks
            ----------    ----------
  rwt1.e         2934          9531  (3 1/3 minutes)
  rwt2.e          408          1869
  rwt3.e          399          1813
  rwt4.e          397          1800
  rwt5.e          159           713

Note 1:  I almost always want to get the StrLen() of a read string, so I
modified my routine to return the length of the string since it already knows
it.  -1 still means EOF.

Note 2:  I turned the buffered read string stuff into a PMODULE if anyone
(KS1.3 people!) is interested.

Note 3:  the 3 stdout tests run forever, so you might want to fix 'em if you
plan on using your cli for anything else.

Think that's about it.
-- Barry

begin 644 RAM:ReadStr-Study.lha
M)0DM;&@U+6H```!O````09_X&@``#U)E8613='(M<W1D+3$N945I`%M2=K&GR
M`X]\`?P[4%@:!H.#,%M=D,7):@P%8""P&!K@O=O';G0``RG?#W8/FO$@RA0##
M76@AEUT'81PA<_PA,?-WIPAOKM$YAA'M]_'2"H%8JZ)`2%/@][0Q9=\RSDOEY
MJ(<]O^XI,.?2H"5&+6QH-2T-`0``VP$``$&?^!H```]296%D4W1R+7-T9"TR0
M+F6Z'P#T6I;9IN*\[X`_<:H*:W@W"FF#%9-4+5Q%2\%M,-&)DVR@QH;;QQ_DM
MJTW!>/:@*+$D]LT=.PX=KO7W%ZZXYZ)FU#!55<^.#WM5=7\*@'+G98K!]P",$
MZ!R^\5+@"[?PNI5]AD>6R<Y=C>B(R2.]C4`).VU?3V22Q*8?B,TF7[(@27,</
M\R#O"YV`:'QXB'20`"=2O?JKPO-,B'_+0Z7X!,A$YZ/752E)Y:'VHN4D_BI`G
M3]*6V(LD0\.T[%&L\K+O$:A-+!9Y8Y$,O[0&]K#QB-H<+H;D\AF66?FJVX/9O
MY)6-_?Q$0GH3)+YER;M<A:.RS\'EXUW\\2S5^X%W86XJ0'G5FX+;-EO](&TY\
MFYN`)8,M;&@U+34!```H`@``09_X&@``#U)E8613='(M<W1D+3,N9>.\`2);?
MEMFDX=SG@#]QA6!E>#<.D=PI3)(HZ`,>!=-!A529:26TDV\<OZ5%TTFH"UM*;
M/5KCV:3A^NU>,O7WGO>?7G"D55T,4(.=2:^B(1PNX\4*,]CQ".QL2QQ5;U!W4
MUB=PR`PL2&<ZF"QA(++E)64Z`MBK$\B$]$)Y,Y^0Q8W@(SR#A^,0N%H#55]PR
MA%O1)673#TS"AT,&#\'$6VFNO_Q_!):(:EM#RIOZ1@`?WI?A&1H&61P3U$64L
MI@*$(^O"E%`YKB<%B&4T(UR24'I^<^R><\U)KRSEH;FAOAKED*L?30?^NWIGS
M>]^\?[8%!6!3H/,7#;SKJS4J:.61XOM^FG8D=J;K46<8#=LF+&[S)@%%,\LWP
ML53;HE+;??9:V5VW,+$9O'<MJK&(D$#Z\V]=^&EF<Y7G,'5X'#4M;&@U+00&`
M``"9%```#I_X&@``!G)W=#$N91P9!(1KN]&VUEO._@#_XXW:\[*"!"R()4L<N
M-!2R522F$:XR=CZ:<JXVQOGMI\<O_^[N;<<EEN+MEE1&U0CP'D$@\AXCX0GP9
M(.X>]6VVW-P;P93Z3Q^<),X/VIPZ*#Q(/&&,T$.1$S;@9Z(\R#R1O!O<#37);
MBN\V!\+4,D_`/]M--8OK^U_CRA.CS3H@S=.75*9H`1)*Z&:2B-#3^&ZHCI*SE
M(\TLTF:_'GD67>@\YT3AX0P8L/V#[BBID&A$!#`@P^NF40IHH)9]P6.#29AS6
M6J[K][6J.*::#4)-RY<89<74P3HH<"")<,2;6YU(R.C3T&FQ9^43F<+@6Z1)O
MX<=$<91'N!X.$!BMS$U")`11-&"#Z33#&+/P21@41P_/\)L,>LT$YBD=,;-14
M-.?T&$#%$]W&R5;T:B8K(4.AFH8.+#=#]%:DNDE(M>VC2G8_AYN0'\?FPXL+=
MZGJ+UY'^1IK'Q7\CZ_4+]X!HK)_1HON!AOX&FN7'BXRB*>,Z`;1H-D7%E<@-]
M<8'&A8O(?3+%J"$V:*"8P"8@J1GH@F/!T1&"">PU)L<JB5%$Y0Q(S%MQ1BCGB
M-!&'0,/M!LW2J#Y4:DTZ1Y4</)JC>[80JAVQNWAA2'A4[U85*`(/;*GTGV:32
M%MC]E$AD#):)]'ZP,=""&&9P4(58,9O3@/.AT6YTREXE7@H&2S3_[?"1:7EQV
MR2Z@;I,_(2)\KH<6#`1"Q!*.(^FLIUO&YV/G6O>M^-H'?#AW0)2_%D"12_PHS
M55`*)+0DY0,CX-.&Q:)J<B6[>MO$B$G8B/QB4X79-,WJ&(Y#G-@_VO)X!>0;Z
M#<-V_>8]BE/4^0IFE\3,L(LPA,>$[M>-I<";,>_5AZ%C]@#?2QW7CN)V?2#;E
M>2_^#^*]U8]7`WMR;)D[V+&!TUI$Q-@YF/#8I_(?RO,SA%80DD8Z-SM+UC]9^
M6\.HFA!MR#>0<J)%!1C:+/IT1KBFS-LY33M3'2=F0R8&SPNIT5LCJ.5V8Q3<V
MJC6O')7I^ZI&L(>Z5_W8K]T+H@,A``;6J7&E4.<TI%B<5K$,6B!F,$H5#X0((
M'0#$>/\J#SZ!(LTD:)I(BTITXFA1F;0>*$<7]\H%'S]FHQM,#-,`Z6AS/'G5#
MDFDCBU;R=-;SBD9?O=9Y3K?3&@\)0[?P9'VK(2^N<.M%>5Y95\:&-AMKHCOTG
MRQ50=]+%^GV7):PA%06>^^'RV[=O:4U4Y;0*KX67Q^NHVSWWZ9S*]_!8SSGLH
MKFV@:T)2PK$,H`XU4R-.E!E@#MDP.RFY*+LIL31\FG)?!@[IJ'AUS*V,SUQ"]
MK(O7(]H/8H5<="X4\4^2<^H9?$_A"U:33\D.UMXO(F)X?<E*L3W</UZO*<(J[
M).1+H3CJR%N)W`QOY>;'A!/J'`JE>DNF-+(,9FZL[RZ<T2(@B4BJN1ZL-E*$J
M-82&?MPM[,S;>[0T-6RJ;(9_VR]0SUR_J]-_:^XB:JQU^BS%==S?:8#IB*#J^
MCCQS'0:\#=KGC/#<YQS(*CLGR4N4^1'*?`ISW.>>T[9RPS[/;WZCMA12[VX,/
M2P[THS1]LF47`=K]M^I3M;)O,*,JL&"UOKUI]R6VU$L1+C7N4>Z2M1I7)>N2#
MM:P&/]2)'TYX[3NMD'0K8'LV\*Z*TU5@W_[;ZL@2MNIX1V\%UMBPJ,VZLVW%N
MUT2W1P)QC`&&2,W\;=K-W6S<'_7[XYL_;N(_[<,W\UL:?OG7@4_G<7_FXG_=L
MP_?M<51*O:[[Z*F4(=_&I_>A'JV,,ZN-7,JZ^/?]3./?_?'7[^`=\.`A3R6]U
MNT:SJT+PRLA/XA^#GP/KPR9]#H_V1T"Z5*=@+/@F?H33<(L@F*4PG=J;THX7(
MI*$#C9PO^.]?P/K@PWGT5DQ8:<YXC/(]1%6+!=25.5_$:4]&6VZ%J9?QGGR.G
M6EZ]_$)>SXU,DX+/N51P7F"(03<NDV>`ES.XRR+%0A8X<TJTJ,#DIBIAK,N8!
M!QQ23I2NOD:TA)'$^IH(^8:&1@Z_]_&_RY50`%_T\7"Q!)#R;1$C*2_5F-*7;
MR%`UIK^(7244Z7<,B`-')1Y]`:3:9)M3RW)L8-<X@!QX+6QH-2V3!@``^A4`6
M``Z?^!H```9R=W0R+F5..`3Q<Y?1MQ;+8[\`?DC`C=KLLI^N$*H@E2QPZ?J63
M2J20X1;2IV/9TU5QMC>SK8>./WV[NMN.2VWB]W+E1'=4(P#$$@Q#"/"$\"#NX
M'O5MMMS;NT&(^<\7I"/*$D<R#0!*9^#"B5MP,NB+(@\<5<-K=::XK]K'=>"MZ
M!'-NC_:S35_ZO_O<.()D<\R'\G3BTR&:`$1R.ADCT1(:>O6E$<Y69'/)+'DNX
M198UEWJ/,=$P;X7;][ZQ]Q14I,-OA`^@P^N>00IH7Y)NT+$_G,PYI5=IZWJ5=
M'!+*_I$FX\6`,5_L8)T4.!!$N&)-J<Z<9%HS]!I;^7C$YF"R%B<2>#!HBB*("
M5D-S>`8HXR:A$8(T2Q`@^<THQ=R[L<0%$</R_";'B#(_,8I$RFR:)9C^HP@87
M8:_B;)5O1I)BL)0Z&9Y@X+UH/S5J2Z.0BVOL&E.QZ]CX@>P<]Z_>>4]1>O$];
MQ--8."YA>7ZA<M@-%9/Z-%]D+URZTUQX+_"413Q'0#:,QL*XLKD!JC`XT+%X>
M3YY(=(0&R0ORF`3$%2,]3\IW^B$P/S5&I-CB42HT3%#$C,6W%&*.<C\0=`P^;
MS&R=*H/E1J33I'E1Q735'7\(0JAVQNZXPI#?4[U(5*`(/8*GTGV:3%MC]E$A6
MD#)-$V;](&.@_!!*X*$*L&(W5=/,AT6YSR%XE7@H&2S3_[>\1:7EPQR:0;G,`
M^0D3S.AP7;I$+$$HXBZ:2G4\;G>^=*][GXV`=L-[M@2E^*H$BE_A0JJ`4*6A`
M)R@9'P:<-:T34Y"MV]3>)$).Q$??"IPN^:9NL8CD.<UC_:\FX+R#8;>M7+;'/
ML4IZ'R%,SOB9EA%6$)CPG=IQM+@35CW[,/0L?K`;:6.[L=Q.SU`VWAN?<]?M)
M]F/5P-KM39,G;OX`.FM(F)J',QX:U/R'YJ[,X16$))&.C9\"]8_45UQU":$&+
M[4'70<J)%!1C:+/IT1KBFS-LY/3M/'29F0R4&SP.IT5LCJ.5V4Q3<HC6O')3"
MI^[)&L(?&5_V7[EH+0@,)``;6J7&E4.8Y"+$XK6(8M$#,8)0J'P?0.@&$\7X?
M:#S9A(LD<2)8X2TISXFA1F3,>&`<7]PH%'R]^HQM,#,[XZ6AS/'F5DFCBAT[F
M2=-==Q2,N6^X\GUOIC0>`H=O7<+S54)?7.'4BN:NLJ^-#&LVU41W)Y8JH.^AW
MB_3[+DM40BH*O?;#_UBQ8V%-%.6P"J^%E\?KJ-J]]N><RO?<J9YSV5S;`-*$Q
MG85B&4`<:H9&?2@RP!VJ8'?3<E%U4V)H^33DO@P>,U#P:IE:V9[HA4D7KD>T"
M'L4*N.A9*>*?).?4,7G>O!6K)I^2':V<7D3$\'N2E&)[Q'ZM7D^$5$?$ET)A]
MU9"W$S@8'L6/!>!/J&ZJE><NE-)&,9FZ,[RZ<T1H?A4BJ.1ZL-B*$-(2";PP]
MMZ\S;?;H:&K95-D$WZY>H)J9?T>FWL?<1-%8Z_19BNNYOP,!TQ%!U1QZ)3H-]
M;!NMRQ'@L\HYD%1V3Y*7*?(CE/@4Y[/+-6=JY89]?M[]1VLHG=[M#$L/)*,TE
M?:YE%P':?;;H4[6N;S"C$K!@M;ZM:?BEME1+$2XU[E'VR5H-*9+TR5I6`Q_H]
M1(^G+%6=U,@Z%+`]^WA716EHL&_[;?1D"5MU.7;]+K;%A49MU9MN+KHENC?3#
MC&`+T<1OWV[5;NM>X/^?WQS9^W<1_NX9OS6!I^^9>!3^-Q?][B?\W#^6UQ5$9
MJ]KOOHJ90AY<:G]J$>S8PSJXT<RKNX]_TLX]_]<=?RX!WPX"$_);V;1JNK0O@
M#*SXJ+,_%!".([HT9<II^YQT:1P/NA,?\1%&CRV;?`I-I$;]G`)[L.G2^#%XN
MG^MM:))%$?[]E)FJ&5R(EFPPK)R*V'*(>83&Z9TON-I.1H]\#;<WG'0OV[>%F
M[%S\./!@>O8E6)K:3P-=4)Q9$FB&X;6W:N)<+[[]G%@QO4\C51!R)4/-OV9_$
M@M2+%Q994#YQ^)!NO+BAES.C_8QBD4%BEVSX?/Y_,3)"+()?D,)W6EZD?+7C<
MT(%L+SWHMW+KRZ<F\N:DF+.'E/":NCK(JOW;22IRGXXZ?K?V!@#1\DMR2FZB^
MU;A\F]S5E\%WSB=LH6)4"U=,F5ZZ"$$XJ9VW2869QF(B_H0L<4:W&8<TIBAD,
MJM;(!PPQS)2NKG-SA(W$^IGXL8V_C+Q[[>%[CQ*@8,"TRGJ020\>P1&R['KR2
M&D+Y8X<'*_C?4E$^\.]&@#11Z/3F#.;/'+IKK<FI@UVD`!QM+6QH-2W1!@``]
MO!8```Z?^!H```9R=W0S+F4Y0`47:[O1MM9;SOX`_I'@C=KKLQD"%D02I8X:!
M"ECJDE,(UI4['TTY5QN#?2VSXY?_]W<VXY+;<KC&5$8J$>`\@)8\9XCX0GP(C
M.X;I&VVY=W:#$?,>3U!+D#-I#H--.>60LLQH8L*)FW'0Z3HRRZ$!HG,K91HFU
MD-$$Z)B&MK=:$CQFD]2,H=$,>@SP?U^$CM<$%OBO/A8BEGW1^V&FH/I^M_?QH
M":^6=$./GQ:<YF@!$N=T,<NB1#3]^VH#H"S(Y<\TN.[)DE6'=!YSHG#S!>@O;
M_4.<25,@5!\P10H,.7-G'5-'#GG[-62',9@S4:[;]S4:-Z::'2(-PXL`8H.M!
M`G6B6`RU#$&U*=1N2:,W,::#)PB,SA:"S1LGBP:))";9:#<\@"V[B)*$2@3B:
M@0?,:87-9-T7=DT?O;`(L>0,<+'C8]`OMZ##HQQO>`LDV\VDD*PDSH8-#!O7_
M[8?F;4ATN<@U[N?8_?XN`'\'+?@OOJ6HLO`_P--8-Z[A?7E"[<#"J&IMP6`7D
M[MYIKAP0;Y-%/(=`-HRFPK:RMP&IL#A1/X3YL\>D(C8XX9C`(B"G&=$,QX>:O
M,P0SUBI)CB4"HT3DS$A-4=BAG'#(',+/LIL?.ICY0:DDZ=\H.'DQ1O?E'B`,B
M3MX64AYE*]5JI(!:]DH?279I+6V+V32&,,SZ)\OZ,,="&**9P2(48,ANF\>=X
M#HISFSEA*/!6F1S3_V_(0:6+?ESZ0;H$_21)Y'0WKUX@%A"4,2<]03J6-SN7_
M.H^]J\;-';#R=C"4KQ6PD2O[X%5,"C2D)*4#&^##AK.B8G(UJWJ3Q.PD;'8^E
M^-2A=STS=0M'+><U[_XK)N"L@R&W[=VXQ;%&>E<A+-"XF9(171"8L)W:J;2VH
M$UT]^NCT*'Z]#;2AW;3N)6>D&V\-W[GX+G73U<#:["V2)W(,`'3&D2$U[S*>S
M&LS^D_(\RN$4A"01BHVN\/7OZ@MX;=.A!NPAO(.4$BM46VBCZ;$:VILK;.406
M[4-TG94,F!L\3J;%;&ZC5=F,3W*6UKIR56?NMQK`'P=?]D%VV%L=#"6@#:S2S
MXTJ!SBSD&)I6L(Q6(&4P294."%`V`8SR?AH//E$"QRR(FEC*RG12:$F8\IXXD
MAI?W284?)W6C&TL,S0C9:&L\>=52:62/3M)LUO.*)EVYVCE%M]+:#Q$SM^]A;
M?:K9+ZWPZB5R/+"OU@8UBVJ".[0[%4!WSL/Z<RW+5@(F"O/MAY;-FSL":8<MC
MFBJ>%D\?KB-KS[=#YE9]RM'G/9'-LT:B)0@K",K0<:I1&BR@R0!VMX'=#<DEW
MUPV)@^3#DO@P>#U#Q:GE:T9[6A5`7K<>T'L,*N.A:)^*<2:^H8O._?"Q83#\Z
MG7:V<7D1$\7M*E-)[PW]5KRBB*B7@2J$XVLA3B=P,#^+BP7P3E#=5"O0'3&S+
MRBV9NFN\N'-$J(8U$JGD>KUL1,AJU(I^^BWKK-M]EAH8ME0V13_M5ZBGJ=_3G
MDV]B[CLTQCKR+$5QW-]X@-F(F.J&/1,=!K@-V..0\5KC&L@INR<2CRG$0RG`)
M3Y[7'/8=KY89]>;W6CM810KW9K$</$J,L?:WE%P':LVW29VM;WF!&)5#!9WUA
M6T_`K;(B6$EQKVF/L<K2*5.7J<K4<!;_221R<<EAW4B#H5(#W7>%=%::F0;_#
M[M]-0)5W4\2^Z"5%1EW5EVXNNB5Z.%-,8`ORR&_B[M7>ZUW@P_OO)_"\1_UXC
M9OY+(P_?*N@I_-XO_+Q/^WA_&ZXJ"5=UWW05,@0\>-3^\"/7<89U<:>95V\>4
M_Z&<>_X<=?QX!WOX"%');V71J^K0NC*OQ@`-Y89(HQI'\VC)D-,GP)ELY8IP7
MR32Y@?L3A@9XRTO"PJGF0N>:=;O2\&`(2KQDZ^(:5+?FTC1I=(`X(>H>+%+':
M(F7,LQ*%A5A;8?@4(EM$=>M'V$E,1`DM/#ID2I#`"PFK798Z0@2ASF$QN>DI#
M;C:C7N*!2O^.A!<N87\7+O\6#`_?Q*ED46A=\(-R4=4IC;6;J29R5=7]B/K86
M*">#L7&(&+5/&(3K=O<)6R07$L=+1W"F1O><?%/7GUMCR971^RBQLFM+:JGQW
M*'S)8,.V6I!G,(W8FZ4>5X?)X"R2^_Z+EV\^ME3>3+4#%8@R'C,\CJ(*@O6T$
MA3E7CZZ.PY9%NM'E40],QNDKB@?%\?)87PNO.(W3#F28#R!Z'++NBEL$HKI)S
M_>)!9W&4Y8!\M"K>)[[C*:"2Q2B5=S8`WXY9TE75S^*-25Q.4T,G$,[@LI?^P
MW??X<2F&"PM+JJR$G7EV;$K(:>K&;.@O,OVF>/:2$4<""_*@#22Z/5E#,;-+,
M-I>6I-:!KFE`')LM;&@U+=(&``#&%@``#I_X&@``!G)W=#0N99$*!1MKE[&W1
M%EL=^`/TC`C=KLLX`$+D02I8X=!2R522G".M*G8]G357&V-Z[;/'+_]W=;<<X
MEMO*\<<J(XJ$8!B`EQAF$>$)X$'8=TC;;<N[M!D/H/%Z0CS!HTAT&EF/'$66:
M4S\&-$K;CH=)T9PGF,K61/+$:`)D2D+C]M;K0D>$T7I$&Z'X9S60_KX2.UP8"
M;G%?>"Q!'-NC^V&FL/T_6]OY!-W+,A_+SY-,AF@!$<CH98YXD-/8+B@.@+,C@
MEDECRWHLT:P[H/,=$P>4+^'!]0YQ)4J!43RA`^@PY=$@ZIH7Y)NS5B?T&8,UL
M&NX]=U&C>EE?TB#<.3$&3#UH$ZT2P&6H8@VI3J-R*?1S&EPYN$1F8+86J-D\U
M&*>*(FWVPW/(`MNXB2A$8$XT$'T&E%SN;=%W9-'[VP"+'B#*^QY.6<7V]!ATW
M88;/@+)-O-I)"L9,Z&#0P;V"X'YFU(='(0;9[GV/8.+@![%RX,.!Y2U%EX'NU
M!IK%O7L;R\H7KH8U0VMN"P#!>OM-<.+#ODT4\1T`VC.;&MK*W`:FP.%$_C/HE
MDATA`;+"_*8!$04XSH?E._S0F!^:L5),<B@5$\Q,Q(35'8H9ROQ!S"S[.;+SF
MJ8^4&I).G?*#BRF*.S^4>(`Q.[(LI#RJ5ZK520"U[10^DNS26ML7LFD,89)/(
M-G_1ACH/P02N"1"C!B-TWSS(=%.=$A82CP5ID<T_]OR$&EBWXY-(-T"?H(D\4
MCH;U^^0"PA*&(N>H)U+&YW+G4?>U>-FCMAY.QA*5XK82)7]T"JF!0I2$E*!C;
M?!APUG1,3D*U;U)XG82-CL??"I0NYZ9NH6CEO.:]_\5DW!609#<%R]=8MBC/^
M2N0EFA<3,D(KHA,6$[M5-I;":Z>_71Z%#]>AMI0[MIW$K/2#;>.]]SV&[UT]9
M7`VNPMDB=W#B`Z8TB0FO>93PUF?T'Y++*X12$)!&*C;[P]>_J"[(VZ9T&["'E
M90<H)%:HMM%'TV(UM396V<HAVH;I,RH9*#9X'4V*V-U&J[*8GN4MK73DJL_=W
M;C6`/@Z_[,-ZX%P=#&6@#:S2XTJ!SBD(,32M81BL0,I@DRH<#Z!L`PGB_"<\;
MV<0++'$B6.$K*=%)H29ESGA@&E_>)A1\W=:,;2PS0^-EH:SQYE5)HXH=.TFS&
M79<43+UWM'*+;Z6T'@)G;U_&\U6R7U/AU$KDLK"OU@8UBVJ".]0[%4!WSL/ZE
M<RW+5@(F"O/MA\5JU:V!-,.6S15/"R>/U1&UY]NA\RL^Y6CSGKCFV:-1$H059
MA&5H.-4HC1909(`[6\#NAN22ZX;$P?)AR7P8/!ZAX-3RM:,]K0J@+U./:#UFL
M%7'0MD_%.)-?4,GF>P!8L)A^3KM;.+R(B>#V%2FD]X;^JUY11%1'P)5"8;60T
MIQ,X&)[)Q8L`)RANJA7H#I321BV9NFN\N'-$:'X5$JGD>KULA,AJU()N^BWK^
MK-M]EAH8ME0V03?M5Z@FJ=_3DV]B[CLTQCKR+$5QW-]X@-F(F.J&//*=!KH-Z
MV..(\%OC&L@INR<2CRG$0RG`3Y[?'-8=KY89]>;VVCM810KW9K$</$J,L?:WX
ME%P':LVW29VM;WF!&15#!9WU6T_`K;(B6$EQKV&/L<K2*5.7J<K4<!;_221R0
M<<5AW4B#H5(#W7>%=%:6F0;_[M]-0)5W4\"^Z(5%1EW5EVXNNB5Z-]-,8`P1,
MQ&_B[M7>ZUW@P_OO)^^\1_UX9OY+0P_?*N@I_-XO_+Q/^WA_&ZXJ"5=UWVP5>
M,@0\>-3^\"/7<89U<:>95V\>_Z&<>_W\=?QX!WNX"%');V71J^K0NC*OQ@`-4
MYWXH(1I'\T^;,:5/@3+ARQ3!FECT`]8F#$SQEI>%A5/,A<\TRW>EX,`0E7C)^
MU\0TJ6_-I&C2Z0!P/]0\6*.&),N99B4+&K"VP_`H1+:(Z]:/L)*8B!):>'3$$
ME2&`%A-6NTQTA`E#G,9C<])2W&U&O<4"E?\=##=NXWLG+O\6+$]@R*ED46A=?
M\(-R4=4IC;6;J29R5=7]B/K8*">#L7&(&+5/&(3K=O<)6R07$L=+1W"F1O>84
M?%/7WEMCS9W1_8Q8VZ$)-=6UA/B4_F2PD=XM3#(81ZQ+TH^.S'.@63X'O/=O"
M7WELM;S9Z@8K$>8\)K*.H@K#?N)"G*O'W4=A^T+>*/*J!Z)3=)7%P^#X5>5?#
MCD1R6%\,;S"1!\!<1HHB%)0IG'*74KNL%LK5AE._#.A>J3Z7&4VDE:E&:[H`+
M!OPQS))FKH!4:D;B<IGXN(9YA9@]]N^]PY%,3%B27:5D).O'LV(V0Y]64TB"S
M\S3;9X^1(11P*L$:`-%'/Z<X:#:(Y=-E:DUH&N:\'*8M;&@U+:`(``#2'```"
M#I_X&@``!G)W=#4N99DJ!C5SM[6VV\MQST`^`W`1+:::EHN$$$5`D;*L6":3,
M"2>FVD>@+)^FOV%$K$E-M;IQ][W__))*23;T=NH>&M8PHVXN`VX-`O"W1#>@K
MC=AW61MMN<.\&1.=,72$>4)LR`Z-.7*B1$`2(>@"6:0LO+IB?F3'$&F4<E,0K
M.\O+9"6%/3FFAU!O<+0@?/'`G*D<_,._#+'(8">Z$PIFU6@\OA`[7)AX^:^ZJ
M%B".7A']L--8?7^QWBR"17PEF>?^.35H0`"+_6B&.+IE":,#R`DCTS)B1+:(7
M$`./HL@_'IBF:=P<:@+.#43?#1)&_>BRQ]X0F3G1)M"'4F5,TH>@+^'!]0^X,
MC6283O]`0/3('USZ!Q40O:)=V+$]G0S<TD;.-?`:<;MVHJO5)(]J$#<N3$&35
M#M,2RT21$+1..FJ1E/F1:<_0B3#EY1W,H7`MSY*8,6F*(EWW`X/,2$>8C((FJ
M=,D2R>CRY>$6"%(1[_AVPL0/O2H)E*1#^F25/4@<&&&UX[8Q;T:B(K&26A:8F
M0'JP<8?V%IZZ/06MM=S*#N#FY`=Q?#!AP.J.HO7D=Y&FL7JO8W5^H7KH8U-V-
MMN"@#!>OKUM.@P(ZY\VE7AL9$W8(`'.6L$SL6S<69QO3/*9K87/[X](1($](B
MXD+=_E4YRAY_,&5,*@)P[W!P!HT]$*7_0'`SXT)Y<RV5>U"_HN!F>B@A,-$"R
MPU"+\SPJ+CT(B$;,2P+^>-/\T;@2H")BT:9O6<!8)2TW>]N`9WNR^)ZWT1=,@
MU1**`@H9Y'NP4.-YQ;!Z$!!J%Q)+[$<A0<\B>H7.*#HWN$P(/PLKJA(2D:0P>
M;2A4Q3!"8SM.+(FHL*C2$"/B*YD"FA,H=:1*<5HB2G<9T.TQZ$)BZ"+4POMJL
M+E,0F'4,Z`)HCE_HIX@(CLF![J>3"]T"II_,](1OZP.($K@6"A['7#J5&0%SG
M-3SG!^/Q.+\N+#Q%`A3$F8&Q9ZQK@:K@N50/'";KQISZ!CV0(?A>D0<BQ4&C%
MJ>D29B/2U[4GC<BM+-IE9)@5(L5N7WHB8+?S(?^*S'&)B3P9YY1-+1QP;7]9>
M&(`PN[0P!29K)YRG%,`%CVR281[-&H%A]U(,T:9<W]T&60>@@D<$"%&=B1UW?
MTRS61+G/H+Q*/8K#(9G_V_,6M+RXH]&H&Y]G[B!//9#U7[Y:%@"5N(OC3J:C1
MC<[CSI'O:?&S!WP\VY!)GQ6@D0O]["JD!0F4)&4#$^#$KUC0XI4*S;J+P\@]*
MV.1_&%1A=RTR<N;+.<UY_V')P"<@QNL''>NL.Q0GH/(0R1XFZMDKF]_Y=(\'L
M5D,=6KFV,1>FS302+2O70@[9T@F[KP-\S<[:!BXJ5"WCO?P=PW=M`^X&]N#9V
M$G=PX@2;D!$37G,H&M8G]R>>TRD,)U8](PT;GRUZ\^K5VAJ=](QC=H#M3))G;
M)6**NQ)\Z6U:4V4<#D[8DZ=)64&T@-I@LG2ZL3J-$.<BRFF79/@HIR-JC6:'*
MQ5?^W#>XP&>Z3/^<7-5BEQI3-7-H@5)S1.!BC6LB'DBH?!Z89)L*8OY:4RYA?
MT3\<4TD<)3'YX=!2P,R88!B&WB04G+W4VS9H,SO#),&6R,N<XND<4.K>.F5&3
M9,8,O7>W>3U!)IH3`2.W;^-UJM$O>N&H%<]I>J_!AC7MJF([TZL5,'>E@_/VK
M6I:O0B(*_??#Y[=NWLU-#.6S!5`O9`Q[VC:_??G7,KWX*R><\&YMF#2!)R%8$
M!E8#C5!(SRGF.`6:U@=S-Q@NMFPV/C9R77%>*U$P5+*UDSVI"IT7>H]H/`0JI
MM&KA+Q/R.2&&3V.X`L6#9^/':V64953,'VA2B$]XY]4PJ>"+-'R&:$HS`!+BX
M5P,3N3FQ8`/U#A4RO/KI$:(Q3,W1'>6SG-',]"H%46LZ\;(2(:<2"7Y06]<9B
MMO=(:%K93-D$O^(O4$M*OZ/3?V'N.30V.OT7L5MW-_+8#)B)#JMQ[9$S(N@WO
M8]\28+GO&,@I.Q^2AR?D6Y/P)<]SWRV+-=O:G7[?=*.UZB<WMV,0P\@HR1]KG
M645#73[;]`G:UK>9J,BH&"QO5+3\0ML:)8"7&OM$>Y2M&TI4O2I6D8"G^@$CW
MZ>^*Q9J)"R%)`]TWA5\!)0X-_^;?1$"5-U27%U%P<!05&3=63;BX/LIT;QPQ&
M@#`5]3_J;M7.ZUS@_^??A&S^R<1^DX9OZ+8L_?K7`4_W.+_.<3_Z</Y37%,2Q
MKFN_<Q4QA#RIJ?Q81VS&&6W]%95VT]_TLI[_^TZ_E0'??0(3U+>R:-7;;+MH[
M=W&OA^5M"L&@W(7'+409ZN.HL[.1S5Q/<\^:CAJ6:A-4]$>'[V\47<`Q;:IQF
M&<1(S*5M?;[+P\X&D7;58J^.@8\B6Q^EFQ5Q5"QI5A$%,1<5`HX[67-9K+36E
M&V/."'JP)Z5O%SYJ18YMM=J%QF8[^_SD-/-X9W/1;TL^VE>FG-HKB:M76BVL&
M^R^734,`U0"7N+>ROEUD[4J[W#L1-%B=&ZSF(Y7`&F<)\B_=IYJ!LF!5$]7R0
MB3$P8T3&SPH'"I)QKN-]3`^XTF%N/_-B/7PXY\D<3<35<%GV#SH=]U;6V7-&7
M*^2FLUMU!+9"$I+:^6L/G!_/;9#W.YN,/0$Y='T?6A^9=B%)!:GYD`4+?-YU4
M8>QOD^"8HU3BM)LYC2X'GMD+O2+]Z^0;9S$Z<IC\B7/E<&#JACNW5RKU"VOEN
MS%;(G(@&=A@^=.C+SPCSCXTD$G7-]%H8-@TA.!WVW13>LMLN:G2E1,'SU4W8Y
M6IPW^-FI)TL]871B"&J>F?GX*:W9"Q1#:]TB.LJ9X/U?.KFGU=<=SV%UJ!P%,
MVX3<!GA@C6<2N.4O+'3P@V:ZB6NXQCM3&<Y"UTV8!Q0QCT/S9EE7@B"*KHCBN
MA0]%S#)>%AYW]W$[RY*CK.VXV@J\;/%>6L*%*6['T:#[%ZXSI:SU$]51@CF!-
3$4>GIS!G1GCDU6AJG7-I$K<)``J\7
``
end
size 9874

From crash!cogs.susx.ac.uk!johnm Sun, 25 Jul 93 09:43:20 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sun, 25 Jul 93 09:43:20 PST
Received: from tsunb.ctn.cogs.susx.ac.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oK7e2-0000CPC; Sun, 25 Jul 93 08:05 PDT
Received: by tsunb.ctn.cogs.susx.ac.uk (Smail3.1.28.1 #38)
	id m0oK7aJ-000018C; Sun, 25 Jul 93 16:01 BST
Message-Id: <m0oK7aJ-000018C@tsunb.ctn.cogs.susx.ac.uk>
Date: Sun, 25 Jul 1993 16:01:59 +0100 (BST)
In-Reply-To: <199307080232.AA28489@mars.let.uva.nl> from "Wouter van Oortmerssen" at Jul 8, 93 04:32:43 am
X-Mailer: ELM [version 2.4 PL22]
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 947
From: "The Mighty Git" <johnm@cogs.susx.ac.uk>
To: wouter@mars.let.uva.nl (Wouter van Oortmerssen)
Cc: amigae@bkhouse.cts.com
Subject: Re: misc

Have a Wouter van Oortmerssen:
:> 
:> >>  Wouter,
:> >> 
:> >> Could you/would you implement some kind of directive that forces data to be
:> >> placed in chip ram, like the Lattice C "chip" storage class specifier?
:> >> 
:> >> -- Barry
:>  
:> I probably could, but I find it a very ugly idea. small chipdata can always
:> be copied to chip after a program start (spritedata etc.). if the amount
:> of data is that large that it would be a waiste of memory to copy it,
:> (pictures, samples etc.) it shouldn't be _in_ the program in the first place,
:> but rather in a seperate file and read directly into chipram.
:>  
:> Wouter
:>  

Just my opinion, but by not implementing this you are forcing people to
use multiple files even if they don't want to.  I think that E should be
as flexible as possible and thus cater for all people's possible wants
(even if it should appear ugly).   I would greatly appreciate a CHIP
specifier.

--
The Git 

From crash!kirk.safb.af.mil!BWILLS Sun, 25 Jul 93 15:45:17 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sun, 25 Jul 93 15:45:17 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKDEk-0000STC; Sun, 25 Jul 93 14:04 PDT
Message-Id: <m0oKDEk-0000STC@crash.cts.com>
Date: 25 Jul 93 16:01:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: Fill 1.1

To any who are interested, I just uploaded Fill V1.1 to merlin.etsu.edu.  It now
correctly/completely fills MS-DOS 720k floppies.  -- Barry

From crash!cup.portal.com!Politikill Sun, 25 Jul 93 15:45:25 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sun, 25 Jul 93 15:45:25 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKEMo-0000GXC; Sun, 25 Jul 93 15:16 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.383) 
	id AA10696; Sun, 25 Jul 93 15:20:23 -0700
Received: from hobo  by portal.unix.portal.com (1.685) 
	id AA23418; Sun, 25 Jul 93 15:20:19 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA18378; Sun, 25 Jul 93 15:20:18 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 74
Date: Sun, 25 Jul 93 15:20:16 PDT
Message-Id: <9307251520.1.7106@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Re: Listviews and windows

>>>     I have been using E for about a month, and in that time have run into a
>>> few problems (bugs? or just ignorance? :-)
>
>judge for yourselves... :-)

    Ahhh....so just ignorance :-)  Unfortunately I do not have any
documentation except for the docs that came with E and a bunch of source code.
which I have gotten from different sources. (still looking for more)

>AddTail(mylist,[...data..for..new..node...])
>
>a structure like [] is a static structure, i.e. the memory it's
>in is not created at run time. because of this, every iteration
>of your loop, you overwrite the previous values, and pass the
>same structure to AddTail()! Instead, allocate each time a new node
>
>New(SIZEOF ln)
>
>and then fill it, and pass it to AddTail().

    Great...this looks doable. I can usually tell what someone is talking
about, but can't do it myself without help until I have done something like it
once before...I get this..should be very easy.  Will have to test it out.

>I have no clue what's crashing your machine, I'd need the code for that.
>
>I can help you with the windows, though:
>Here's how you wait for messages from various windows:
>
>method one:
>
>- OR the sigbits from all windows involved into a variable "allsigs"
>- in a loop, perform a Wait(allsigs)
>- in a loop within that one, call GetMsg() in sequence on items
>  of a list of ports (window.userport), until all have been processed.
>
>you can see from intuimessage.idcmpwindow which window
>actually caused the message.

    I got this one to work perfectly, taking only about 10 minutes to modify
my code and get it all set up. Unfortunately, it took me about an hour to find
the module in which "mp" was in. Finally did tho! 

>method two.
>
>if you don't want to wait for more than one port, you can CreatePort()
>your own, and connect all windows you open with this one port.
>you'll then receive all messages here, and can decide which it
>was from like in method one. How this is done in detail is
>on page 254 of the RKRM libraries 3rd ed.

    This was the one my friend was doing which crashed his machine.  We both
run 3.0 (I have an A4K and he has an A1200) so perhaps it is a bug in 3.0.
Does not matter as we now have what we need.

>>> *-- GammaTag Version 2.8 --*
>>> *-- *-- DOS ERROR: Please remove cat from drive DF0:...
>
>miauw!


    GammaTag is what I _WAS_ working on.  V2.8 and below was in ARexx. 3.0
never got above 0.06 (3.0V).  

/*-- The Gamma Quadrant -- Home of GammaSoft --*/ 
DEF wizkid
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC


*-- GammaTag Version 2.8 --*
*-- A hole is nothing, but you can break your neck in it.

From crash!serv-200.dfki.uni-kl.de!dfki.uni-kl.de!langston Mon, 26 Jul 93 03:45:24 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 26 Jul 93 03:45:24 PST
Received: from uni-kl.de by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKOYY-0000GEC; Mon, 26 Jul 93 02:09 PDT
Received: from serv-200.dfki.uni-kl.de by stepsun.uni-kl.de id aa29081;
          26 Jul 93 11:05 MET DST
Received: from serv-301.dfki.uni-kl.de by serv-200.dfki.uni-kl.de id aa22682;
          26 Jul 93 9:09 GMT
Received: from ws-309.dfki.uni-kl.de by serv-301.dfki.uni-kl.de id aa01856;
          26 Jul 93 9:09 GMT
Date: Mon, 26 Jul 1993 11:09:03 +0200
Message-ID:  <9307260909.aa01856@serv-301.dfki.uni-kl.de>
From: Mark Langston <langston@dfki.uni-kl.de>
To: amigae@bkhouse.cts.com
Subject: Upper bound for arrays/array q's



  Hi, everyone.
    Well, I've been enjoying archiving all my Amiga-E mail since I've been here in
Germany.  Unfortunately, I'm really itching to get back home and do some programming
on my new 1200 (which I've only been able to play with for three weeks, because I
had to come here to work.  Grr!)
    I did have a few questions for those on the list, however...I think I asked them
a long time ago, but I don't think I ever got an answer.  So, here goes again.

  a)  What is the largest array that E can handle?
  b)  Is there any way to use multidimensional arrays?
  c)  What is the upper bound (memory-wise) for arrays?

  The first question is just one of the highest number an array can use.  The
second one can probably be solved by defining an object.  The third question
addresses the issue of how much memory can be allotted to the creation of an array,
given that it may be typed as an object of my own creation.

  I really like the idea of people posting code to the list, as examples of how to
perform certain things.  I have been collecting these, and when I get home, perhaps
I could put them all together and send them to Wouter or something.  Is there anyone
out there who feels like actually generating short example code?  (e.g., reading an
entire text into memory, then assigning each word to an array, or various linked-
list applications, etc. etc...basically short (less than 10 lines) code
demonstrating how to do various things in E.))

Thanks,

Mark Langston
(usually langston@memstvx1.memst.edu, but lately langston@dfki.uni-kl.de, at least
 until the end of August)


From crash!axion.bt.co.uk!D.Higginson Mon, 26 Jul 93 03:45:32 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 26 Jul 93 03:45:32 PST
Received: from zaphod.axion.bt.co.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKPdS-0000moC; Mon, 26 Jul 93 03:18 PDT
Received: from elephant.axion.bt.co.uk by zaphod.axion.bt.co.uk with SMTP (PP); Mon, 26 Jul 1993 11:18:10 +0100
Message-Id: <m0oKPdS-0000moC@crash.cts.com>
Date: Mon, 26 Jul 93 11:18:08 BST
From: D.Higginson@axion.bt.co.uk
To: amigae@bkhouse.cts.com
Cc: D.Higginson@axion.bt.co.uk
Subject: Re: CHIP specifier

I would also greatly appreciate a chip specifier. What are
the advantages of storing this sort of data in a separate
file? IMO, it only creates problems for the end-user when
they come to copy your product to their hard disk or
whatever.

Why not give the compiler a command-line option to
incorporate graphics/sound files into the finished
program. E could give the program a pointer to a
structure which tells it where the memory is etc. In this
way, Amiga E could achieve a 'memory bank' type operation
which is what has helped AMOS become so incredibly
popular. What do you think Wouter? Is this feasible?

Other comments appreciated,

Dave.

P.S. I would love some feedback on my HAM posting i.e. was
it useful, and was it at the right level?

From crash!kirk.safb.af.mil!BWILLS Mon, 26 Jul 93 05:44:51 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 26 Jul 93 05:44:51 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKQwf-0000hFC; Mon, 26 Jul 93 04:42 PDT
Message-Id: <m0oKQwf-0000hFC@crash.cts.com>
Date: 26 Jul 93 06:40:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: $VER and Workbench Searchpaths

Better late than never.  I found this info mentioned in the docs for Commodore's
Installer.  It's not a tech manual for this kind of info, but the docs *are*
from Commodore's Carolyn Scheppner, after all, so I guess we should be able to
trust them.

The Installer doc uses the version string:  "$VER: Installer_Dev 1.26 (22.4.93)"
in which date appears to me to be (D.M.YY).

Also, she states:  "If [you] plan to ship only an Installer script and icon, and
wish it to also work under 1.3, then change the default tool to SYS:Utilities/
Installer (1.3 Workbench does not search paths)."  So 1.3 users are
S.O.L.

Later.
-- Barry

From crash!kirk.safb.af.mil!BWILLS Mon, 26 Jul 93 07:46:35 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 26 Jul 93 07:46:35 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKStT-00002PC; Mon, 26 Jul 93 06:47 PDT
Message-Id: <m0oKStT-00002PC@crash.cts.com>
Date: 26 Jul 93 08:45:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: re:  Upper bound for arrays/array q's


From crash!UNCA.EDU!JVANRIPER Mon, 26 Jul 93 07:46:39 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 26 Jul 93 07:46:39 PST
Received: from uncavx by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKTU7-0000R6C; Mon, 26 Jul 93 07:25 PDT
Received: from UNCA.EDU by UNCA.EDU (PMDF V4.2-13 #3902) id
 <01H0ZTSVUHVK8ZDXCJ@UNCA.EDU>; Mon, 26 Jul 1993 10:23:49 EDT
Date: Mon, 26 Jul 1993 10:23:48 -0400 (EDT)
Message-id: <01H0ZTSVZ1UA8ZDXCJ@UNCA.EDU>
Organization: University of North Carolina at Asheville
X-VMS-To: IN%"amigae@bkhouse.cts.com"
MIME-version: 1.0
Content-type: TEXT/PLAIN; CHARSET=US-ASCII
Content-transfer-encoding: 7BIT
From: "Joseph E. Van_Riper III" <JVANRIPER@UNCA.EDU>
To: amigae@bkhouse.cts.com
Subject: Xpk modules, and minor request


Salve, amici!

The following uuencoded blather is meant to be unpacked in your emodules:
directory.  It contains xpkmaster.m and library/xpk.m, two files that may
make packing stuff a little easier for you.

For those of you not familiar with the xpk standard, it's meant to help
programmers incorporate packing routines in their programs in such a way
that they don't have to mess with the actual compression method.  The xpk
system also helps the programmer incorporate newer packing methods (as
they are created) without compromising their older packing methods.  Of
course, the system also helps unpack compressed stuff <grin>.

You can get more information about the xpk standard (and all kinds of
nifty archive methods, not to mention the documentation for writing your
own programs using the xpk standard) in any of the aminet sites in
util/pack.  I think one of the files is xpkusr(something), while the other
is xpkdev(something).  The 'usr' one holds several different compression
libraries and some utilities.  The 'dev' one holds the information you'll
be interested in as a programmer.

I'm not 100% sure the xpkmaster.m module is exactly the way it should be. 
Running Showmodule through it, it came up the way I expected, but I should
warn you that I did NOT use the standard 'p2m' program to create the
module, as I don't have c include files, and I didn't feel like using
harddrive space on maintaining C include files when I very much prefer
working in E.

In any event, I'm pretty sure the xpkmaster.m module will work as
expected.  I simply examined the pragmas and wrote the binary module file
by hand using a sector editor.  I figured out Wouter's system for handling
that kind of module work by comparing Showmodule's output of a module to
that module's hex values.. pretty simple, really.  But, there's always the
chance that I screwed up somehow, so I thought I'd point this out.

The libraries/xpk.m module was created in a normal way, though, so there
should be no problems with it.

If you require the other xpk libraries converted (there are, I think, two
more files that probably should be made into modules), well.. I guess
you'll have to handle it yourself (I didn't need them, so I didn't bother
to convert them <chuckle>).  In time, if nobody else bothers to do it,
I'll wind up doing it myself, just for the sake of completeness.  But for
now, I thought I'd make these available.  If you DO decide to make the
other two files, I'd like to have them (to avoid duplicated effort)..
please send them to my e-mail address.  I intend to send these efforts to
Dominik Mueller for inclusion in future releases of the Xpk standard. 
I'll also archive all of them and throw them into an FTP site we all love
somewhere.

I'd like to request, however, that someone write a program to convert a
fairly standard text file to a binary module file for use by E.  The
current method of needing C or ASM include files to do something that
could easily be handled by examining the source code and re-writing it
to another program's syntax is inelegant, in my humble opinion.  In any
event, it slowed me down <grin>.

That is to say, it'd be nice to have a program to take a text file that
had such syntax as:

LIBRARY libname.library libnamebase
PROC LibSuperFunction1(A1,D0)
PROC Dum()
PROC LibDestroyAllLife(A3,D1)

and

DEF BOOGERBRAIN $8000aaaa0f
ENUM GEORGEBRAIN $8000aaaa10
 DANNYBRAIN
 FULUBRAIN
 GOREBRAIN
ENDENUM
OBJECT obname
 LONG boo
 LONG hiss
 BYTE arf 10 /* to denote 10 byte structure within obname */
ENDOBJ
SET GEORGEERR
 DANNYERR
 FULUERR
 GOREERR
ENDSET

and so on, and convert it into binary .m files that E could use.  I've
found that most of these include files are not that difficult to
understand, and could be re-written as some other 'standard' that could be
converted to a binary.  

In any event, if and when I FINALLY finish my own program, and I have
enough time to work on this, I might consider trying to create such a
utility.. but I really don't anticipate having the time to handle it.  If
someone else out there is willing to work on such a project, there is at
least one user out here who would be grateful.

begin 644 xpkemods.lha
M)54M;&@U+9D%``"*#```69[N&@``#VQI8G)A<FEE<UQX<&LN;6\Z!'UKO?:.\
M0Q+[JUK9TLV6;-\&^#HFQ.B(CP<<\"/`C+<^MN2W,S.S[,[=U$5>MS=[)NVYS
M67+K=X.T$CP/`\"/PU`````=___?__V6[3PMW#HHXVZEU]M%1&MW.XA%%_@E5
MHDQ(1J!^'*A&J./#?HOH'[61T$=$<$35J\V^\D,71YCSQJ3"O2U$:HHWLS3<(
M*!18?8N+&2+UI,=$_*&U#'5RYNP>99=:E3[(*>KS(W8-V"Y>!-UVE`JA!ZP@E
MN//-.FN]V$@;-L\ZBSUX[);&(L]M]^X@@?-$%^.(D(.SOF"*$'0]@\ZT(C7`$
M'`(-I,3!!TN$]*2:%#Y"5=U+Q;7SLZ'I#GSHE8>P`>72G5C+U=`CP-*5N/PM=
MF'F/5IAA?%M]8`^,U.ZEV+>@2>I\]F]BMPQF'R"&J),#;^XQ2\HAV+<;UPNDJ
MBD>T6[L7'4AU]B[]"G4J<\I)!^C3J7VV+GTA#>?L77Z]<8%!9;Z:V-VGGX4F4
MX?MD]U5R"%PMOS"#9<!@!/?'A/J+YC;?AI[B+,?58M4PJZT:8=X];ZV<<QA2$
M_KB*/'S#%>^P(=U]2M[3W.RX\W3W.J@(B%[MJ&TX\<;O1&-WDR<,LV++P'%V>
MBCER2(*3G4R43G';EE[4BY-PCMEFDGGFG*/NM/)EDGXY,*"S[.2>7COT2>&>$
M?://XAY^D>?JGGVSS^*OB?3.9?H;KC]Z%+3:]*'*QS[D+D22S]T.>S"E)GZ@E
MYVJX-;7VM'=CG"%LH]QT.J(*DIN$PU'>#GB?B)_XL-JFPW)/-P!U3+_K#ZJVE
M'W\'#)/COXA!K"Q<@>*;'P&*N@??P42\<M'*>>MOR\4AGBD]G!@S3GCVLV?'%
MTLP:8V][>#?,7IX9L;-SX&7)(+:AZCX6AO*$709SKK9S`$0S]H)&VF,-J,#=<
M<;('NF`I>;+ONL??=^7L?]`2NIR?&5P%X,^.KCSXZVCI+.PCTG:EPK@Y0#^UI
MLM6TVHCO@J:\<D^66;&8/3Q7\N<$4/W^_Q7^!;B4(\'LR7\)C^//?HEF)@_DL
M:6#^8#!]@<`=A&B%>C>7**VMV),?6/I%J,%:AL6W.N$".P>KLW6K2M%+K7/6,
MD.4*%9<0+`WGWE1-EQL>"A/;>&9G7[@?'G>?LQO6`W(!?YG#"A@I!"_V8KCX,
M?U<V(B_USBA4G(7^3%L6TV+BHW2%_@Q>N%%EQ]=2,!?WI5H58S2O[&'=<KN/O
M1C:AV`%_4Q=R%]ZU9?A9K?T,=3K5VZN6`1?S8@PHP)6**#_+G09U5Q'_%G!42
MI;6UMLA_P9TE^&&."*"X8_WF.ZXI3CUH.4$/]QCUV@0T+3JC3_VF.G=@:>/O(
MH\E^S1WTJC0B_68JZ("X$Q0?U&+%"#JFB''6_3S]3L01DU?Z#%9"L*!^>E6Q<
M4PVB/\QCB^].ZXJ)1#_*R"VZVZTJ*GLOR9QU1UUC+X3\=*?L0[T$1OA^*D4/-
M!,?(/X6.=&Q,?!?@IT]MJ%O<:&V=L@/[^=J><A:O][G[S!N(*0V`A756L]4OG
M795+7/A+CWYBG#134E0C:T5-1I)^-ADRX)Y<E"Y_AGE]DY_1JA^UBO\F#LYL:
M?"=5/V\,F^S/K`L?<#/BFPBC$>Z%`-D];EF\R_5HGK(54068G2GKU*1::`2]M
M;K$/'!I0=:D7G0>W2+G08LAYB''PE''R0.H@@US9!&BA:!UC%@A2-ORVW"0^E
MV8Z7EOH*,\!_),?GE&%I?,8XRXJ$'H(,%D`&BOB3-5U\<<G)137QR43,KXFXO
M<;@=47I8I,4R_+MUUU]\>D,O`%`$[5=5=N7'H!U07O2IK@U$=ZMY!>#$,!.WB
MI@)"OR==,7GNV;S75ZG4ZBH$Z:WKJW=A(2,R%-9%U;C6"BF\+K6Z?BW(_^*OX
MBERT%S-&/-B(/*=K_4IM?HJ>6,,?;*NB'CS7@]$-D$`A)2UL:#4M;@```(T`G
M``")INX:```+>'!K;6%S=&5R+FW?+`!D4W:QI0?-%G%-\"3P`4H-!@"QBU>$K
M^2:<&-.V9`\<7"Z+@!E.KI7R9OT>F1PB%IQ;<IKJS_#<<`SR]+#](%YNPSX2@
K6K0\FN!43I*6^[GS&MX=]JZ@[RHV_O"MB/Q=@$)FZ0\<<X#;PM]A=2^``#X29
``
end
size 1618

From crash!UNCA.EDU!JVANRIPER Mon, 26 Jul 93 13:49:47 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 26 Jul 93 13:49:47 PST
Received: from uncavx by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKY2i-0000HpC; Mon, 26 Jul 93 12:17 PDT
Received: from UNCA.EDU by UNCA.EDU (PMDF V4.2-13 #3902) id
 <01H103QW5E528ZE26T@UNCA.EDU>; Mon, 26 Jul 1993 15:15:54 EDT
Date: Mon, 26 Jul 1993 15:15:54 -0400 (EDT)
Message-id: <01H103QW5E548ZE26T@UNCA.EDU>
Organization: University of North Carolina at Asheville
X-VMS-To: IN%"amigae@bkhouse.cts.com"
MIME-version: 1.0
Content-type: TEXT/PLAIN; CHARSET=US-ASCII
Content-transfer-encoding: 7BIT
From: "Joseph E. Van_Riper III" <JVANRIPER@UNCA.EDU>
To: amigae@bkhouse.cts.com
Subject: Re: $VER and Workbench Searchpaths


Barry D. Wills typed:

|The Installer doc uses the version string:  "$VER: Installer_Dev 1.26
|(22.4.93)" in which date appears to me to be (D.M.YY). 

I think I'll yield to that.  No more of these wierd, extended VER strings.

|Also, she states:  "If [you] plan to ship only an Installer script and icon,
|and wish it to also work under 1.3, then change the default tool to
|SYS:Utilities/Installer (1.3 Workbench does not search paths)."  So 1.3 users
|are S.O.L. 

My question was a little different, though.  I'm trying to find out the search
path for a program that ISN'T Installer.  That is, I'm running a program from
an icon (any ol' program), and I want that program to have the search path that
Workbench is using.  How do I get that?  I don't see any convenient way to
handle it yet.

Y'see, my program accepts an argument to execute a command from within it
(specifically, my program is a fortune-cookie program, and I am trying to write
something that will pass a command such as 'more' through to it, so people can
view the resulting fortune through more.. or muchmore, or a text editor, or
whatever they want to do with it).  When called from CLI, the spawned CLI
process gets the same path that the current one has, so I don't have to search
for it in any way.. AmigaDOS handles it for me.  But, when called from an Icon,
my program doesn't have a search-path passed to it (even though Workbench
itself has a search path within IT, through which it finds the programs it
needs to run).  I haven't found a way to get that searchpath.

Does anyone know?

- Trey

From crash!cislabs.pitt.edu!cjfst4 Mon, 26 Jul 93 13:49:50 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 26 Jul 93 13:49:50 PST
Received: from phantom.cislabs.pitt.edu by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKYis-0000MsC; Mon, 26 Jul 93 13:00 PDT
Received: from meg.cislabs.pitt.edu by phantom.cislabs.pitt.edu (4.1/1.34)
	id AA13217; Mon, 26 Jul 93 16:00:27 EDT
Received: by meg.cislabs.pitt.edu (4.1/EMI-2.1)
	id AA00849; Mon, 26 Jul 93 16:00:24 EDT
Message-Id: <9307262000.AA00849@meg.cislabs.pitt.edu>
Date: Mon, 26 Jul 1993 16:00:24 -0400 (EDT)
In-Reply-To: <m0oKPdS-0000moC@crash.cts.com> from "D.Higginson@axion.bt.co.uk" at Jul 26, 93 11:18:08 am
X-Mailer: ELM [version 2.4 PL21]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 734
From: cjfst4@cislabs.pitt.edu
To: amigae@bkhouse.cts.com (Amiga-E List)
Subject: Re: CHIP specifier

> 
> I would also greatly appreciate a chip specifier. What are
> the advantages of storing this sort of data in a separate
> file? IMO, it only creates problems for the end-user when
> they come to copy your product to their hard disk or
> whatever.
> 
> Why not give the compiler a command-line option to
> incorporate graphics/sound files into the finished
> program. E could give the program a pointer to a
> structure which tells it where the memory is etc. In this
> way, Amiga E could achieve a 'memory bank' type operation
> which is what has helped AMOS become so incredibly
> popular. What do you think Wouter? Is this feasible?

I requested this when E first came out (remember Wouter?) and _still_
think its a good idea.

From crash!kirk.safb.af.mil!BWILLS Mon, 26 Jul 93 13:49:55 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 26 Jul 93 13:49:55 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKZNT-0000ILC; Mon, 26 Jul 93 13:42 PDT
Message-Id: <m0oKZNT-0000ILC@crash.cts.com>
Date: 26 Jul 93 15:39:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: re:  Upper bound for arrays/array q's

[Oops, thought I killed the preceding message.  Here's the intended message:]

>a)  What is the largest array that E can handle?

Don't know, but it's pretty big.  The only limit I ran into with this is static
arrays which topped out at around a couple hundred (got that "expression too
sizy" message.)  I would imagine that you could dynamically allocate a *much*
larger chunk of contiguous memory and use a PTR TO LONG or PTR TO INT or PTR TO
CHAR to access the elements:  array[0] up to array[MAX_LONG], whatever MAX_LONG
is.  This is what I do in my 2darray.e module.

>b)  Is there any way to use multidimensional arrays?

I posted that module already (and I think it was for you :-).  I'll post it
again.  I'll even try to make it multi-dimensional instead of just 2d.

>c)  What is the upper bound (memory-wise) for arrays?

I think it's MAX-LONG unless you're dealing with static arrays.  Did you look
in the section of the docs concerning compiler limits?

Later.
-- Barry

From crash!kirk.safb.af.mil!BWILLS Mon, 26 Jul 93 15:51:18 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 26 Jul 93 15:51:18 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKZh9-0000aRC; Mon, 26 Jul 93 14:02 PDT
Message-Id: <m0oKZh9-0000aRC@crash.cts.com>
Date: 26 Jul 93 16:00:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: re: request for 2d arrays


---  CUT HERE  -------------------------------------------------------------

/*========================================================================*/
/*                                                                        */
/* 2D array in E.  It's as easy as this.                                  */
/*                                                                        */
/* User components are:                                                   */
/*   dd_arrayType and the components therein                              */
/*   dd_dim (), create the 2d array                                       */
/*   dd_set (), put a value into an element of the 2d array               */
/*   dd_get (), get a value from an element of the 2d array               */
/*                                                                        */
/* The other components of this module should not be useful.              */
/*                                                                        */
/*========================================================================*/


RAISE 0 IF CtrlC () = TRUE
/* You should define an error trap for New()=NIL. */


OBJECT dd_arrayType
  iUBound, jUBound, elSize, elements
ENDOBJECT


/* These are global to speed up array access. */
DEF dd_ar : PTR TO dd_arrayType,
    dd_charPtr : PTR TO CHAR,
    dd_intPtr : PTR TO INT,
    dd_longPtr : PTR TO LONG,
    dd_elSize


PROC dd_dim (i, j, elSize)
  IF (elSize <> 1) AND
     (elSize <> 2) AND
     (elSize <> 4) THEN Raise ('Invalid element size.')
  dd_ar := New (SIZEOF dd_arrayType)
  dd_ar.elements := New (i*j*elSize)
  dd_ar.iUBound := i - 1
  dd_ar.jUBound := j - 1
  dd_ar.elSize := elSize
ENDPROC  dd_ar


PROC checkBounds (i, j)
  /* dd_ar already points to array when this is called. */
  IF (i < 0) OR (i > dd_ar.iUBound) THEN Raise ('"i" subscript out of bounds.')
  IF (j < 0) OR (j > dd_ar.jUBound) THEN Raise ('"j" subscript out of bounds.')
ENDPROC  TRUE


PROC dd_offset (i, j) RETURN ((i * (dd_ar.jUBound + 1) + j) * dd_elSize)


PROC dd_set (array, i, j, value)
  dd_ar := array
  checkBounds (i, j)
  dd_elSize := dd_ar.elSize
  SELECT dd_elSize
    CASE 1
      dd_charPtr := dd_ar.elements
      dd_charPtr [dd_offset (i, j)] := value
    CASE 2
      dd_intPtr := dd_ar.elements
      dd_intPtr [dd_offset (i, j)] := value
    CASE 4
      dd_longPtr := dd_ar.elements
      dd_longPtr [dd_offset (i, j)] := value
  ENDSELECT
ENDPROC


PROC dd_get (array, i, j)
  DEF value
  dd_ar := array
  checkBounds (i, j)
  dd_elSize := dd_ar.elSize
  SELECT dd_elSize
    CASE 1
      dd_charPtr := dd_ar.elements
      value := dd_charPtr [dd_offset (i, j)]
    CASE 2
      dd_intPtr := dd_ar.elements
      value := dd_intPtr [dd_offset (i, j)]
    CASE 3
      dd_longPtr := dd_ar.elements
      value := dd_longPtr [dd_offset (i, j)]
  ENDSELECT
ENDPROC  value


PROC dd_dispose (array)
  dd_ar := array
  Dispose (dd_ar.elements)
  Dispose (dd_ar)
ENDPROC


PROC main () HANDLE
  DEF myArray : PTR TO dd_arrayType,  /* Only needs to PTR TO if you want */
                                      /* access to the OBJECT fields.     */
      xDim = 4, yDim = 4,             /* x and y dimensions.              */
      sizeofChar = 1,                 /* Just for readability.            */
      i, j, val = 0                   /* Loop counters.                   */

  /* Create the array. */
  myArray := dd_dim (xDim, yDim, sizeofChar)

  /* Put stuff in each element. */
  FOR i := 0 TO myArray.iUBound
    FOR j := 0 TO myArray.jUBound
      CtrlC()
      dd_set (myArray, i, j, val++)
    ENDFOR
  ENDFOR

  /* Get it back out. */
  FOR i := 0 TO myArray.iUBound
    FOR j := 0 TO myArray.jUBound
      WriteF ('myArray [\d,\d]=\d\n', i, j, dd_get (myArray, i, j))
    ENDFOR
  ENDFOR

  /* Cleanup. */
  dd_dispose (myArray)

EXCEPT
  IF exception THEN WriteF ('\s\n', exception)
  CleanUp (exception)
ENDPROC

From crash!cup.portal.com!Politikill Mon, 26 Jul 93 21:46:02 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 26 Jul 93 21:46:02 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKgMV-0000xQC; Mon, 26 Jul 93 21:10 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.383) 
	id AA25245; Mon, 26 Jul 93 21:13:58 -0700
Received: from hobo  by portal.unix.portal.com (1.685) 
	id AA12069; Mon, 26 Jul 93 21:13:56 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA11332; Mon, 26 Jul 93 21:13:55 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 38
Date: Mon, 26 Jul 93 21:13:54 PDT
Message-Id: <9307262113.2.22519@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Re: Listviews and windows

>
>Hi, I was reading the Amiga E list and saw your message about writing an
>QWK mail reader. Since I was also interested in writing one myself, but
>haven't had time to start, I thought it would be a great idea to help
>write one. So if you've got room for an extra E enthusias(sp?) who's
>got some great ideas (if I must say so myself :) then let me know, huh?
>
>Thanks..
>Son Le


    Well, I have since scrapped that project, or at least put it on hold 
until I finish my current project, which is an E programming system.  I found
a QWK reader which does everything I want (AmiQWK ][) and only costed $15, so
I decided to register it and give up.  The other part of the system I was
going to write was a point-mailer program, but I found Nico Francois' Spot,
which does all I want there. All I ever got to was the tagline window (was
going to build around my ARexx tagger) but that never made it past reading in
the file.  

    If you need help on writing your own, I can do some really great GUI
implementations :-)  My current project will hopefully be ready for release
around the beginning of september, but by then I will be starting school
again, so my free time will dwindle, but I would be glad to help out then.

 / / /
/_/_/iZ

/*-- The Gamma Quadrant -- Home of GammaSoft --*/ 
MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC


*-- GammaTag Version 2.8 --*
*-- Unable to locate Coffee -- Operator Halted!

From crash!cup.portal.com!Politikill Mon, 26 Jul 93 21:46:05 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 26 Jul 93 21:46:05 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKgMk-0000UNC; Mon, 26 Jul 93 21:10 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.383) 
	id AA25285; Mon, 26 Jul 93 21:14:12 -0700
Received: from hobo  by portal.unix.portal.com (1.685) 
	id AA12077; Mon, 26 Jul 93 21:14:10 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA11380; Mon, 26 Jul 93 21:14:08 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 28
Date: Mon, 26 Jul 93 21:14:07 PDT
Message-Id: <9307262114.1.22519@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: EPP modifed for EDS?

You're the guy who wrote EPP, right? Good.
    I was wondering if you could send me the source for the latest version
(uuencode it?) so I can adapt it for my (E)(D)evelopment(S)ystem.  What I want
to do with it is work it into my code for use as a "drag and code" system,
where either an icon is dropped, or a gadget is clicked and the mouse is used
to determine where the proc goes, into the source code currently in the editor;
and then the PMODULE line (probly be adapted to something else) would be 
inserted; the new file with the PMOD statements would be saved to disk, and
then the user could convert the source at will to a full version with the
modules included. Anyway, that's our theory as of now. I might have someone
willing to write our editor, otherwise we are going to have to choose
something _not_ written in E, and use ARexx to do the work (I hope the person
I sent mail on Fido to responds!)
    Anyone interested in further info on (E)(D)(S) should contact me. This is
my baby, but I need a few good babysitters :-) (hmmmm....sounds like it would
make an interesting movie "You want answers?;I want the truth!;You can't
handle the truth!....Did you order the pizza? Yes I ordered the pizza. Did you
make long distance calls from our phone while the baby was asleep?...." ;-)

MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC


*-- GammaTag Version 2.8 --*
*-- We are all related...relatively speaking 

From crash!cup.portal.com!Politikill Mon, 26 Jul 93 21:46:08 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Mon, 26 Jul 93 21:46:08 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKgMr-0000xWC; Mon, 26 Jul 93 21:10 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.383) 
	id AA25310; Mon, 26 Jul 93 21:14:19 -0700
Received: from hobo  by portal.unix.portal.com (1.685) 
	id AA12081; Mon, 26 Jul 93 21:14:17 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA11400; Mon, 26 Jul 93 21:14:15 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 72
Date: Mon, 26 Jul 93 21:14:14 PDT
Message-Id: <9307262114.2.22519@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: What's everyone working on?

OK....just to keep multiple people from working on the same program seperatly
(and to keep curiosity from driving me insane):

    WHAT IS EVERYONE WORKING ON IN E?

    Reply to me, and I will compile a list.  If at all possible, it would be
nice to have all replies in to me by Wednesday, 7-26-93, by around 10:00 PM
EDT.  Just to start the list off, here is the first few items that I already
know of:

    Jeffrey J Peden ][ (WiZkId | Politikill@cup.portal.com)

      * (E)(D)(S) - E Development System: Complete programming environment for
           the E language.  Gadtools GUI, 2.0+
           * Current state: GUI done; some routines working; needs memory
                            management help; needs editor; needs some RAID
           * Expected release: Early September; coincide w/ E 2.5?
      * GammaMail - Centralized E-Mail management system: Integrated QWK
           reader, point mail processor (Fido), UUCP (?) implementation,
           simple serial i/o functions to execute sricpt in order to retrieve
           QWK packets, Arexx port for calling other programs from main
           interface, built in editor. 
           * Current state: Started as port of GammaTag from ARexx; GammaTag
                            3.0 never made it past GUI implementation;
                            Scrapped/Put on hold for now; needs a solid base.
           * Expected Release: N/A

    George Beasley (BeanMan | g.beasley2@genie.geis.com)
     
      * CreepShow - D&D type adventure/RPG: Features great looking interface,
           animations, modular editors(registered version only). 64 colors.
           AGA version to come.
           * Current state: 2.x  almost ready for  eta release. Anims need to
                            be implemented.  Editors for objects, maps and
                            others near final.  After   release, just bug
                            fixes.
           * Expected release: Early August. 3.0 should be ready about one
                               week after 2.x is released in  eta.

      * (E)(D)(S) - Co-Working on the (E)(D)(S) project. See WiZkId

      * Sound-Off - GUI front-end for UPD.  Allows playing of sounds, ids, and
           speaking through UPD sound-daemon.
           * Current state: 1.7 ready for release. 2.0 will feature viewing of
                            samples through interface. Possible AppIcon
                            feature.
           * Expected release: 1.7 ready for release; 2.0 Mid-Late August

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Wow! That took alot out of me :-) Just try and add your reply in a format
somwhat like that. Also, if you know of someone who is not on the mailing
list, get his/her/its (E is so easy my rabbit could program in it!)
info and add it too. If you send out a reply, and then need to update it, just
send the important update info; no need to rewrite an item.

 / / /
/_/_/iZ

PS: George, I just included your info for something to show. I have no idea
what else you are working on (have only really talked about Creep, EDS, and
SoundOff....) so just add anything else. (What needed the multiple windows?)

MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC


*-- GammaTag Version 2.8 --*
*-- The Borg are coming! Try to look useless!

From crash!cs.vu.nl!velschot Tue, 27 Jul 93 01:41:18 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 01:41:18 PST
Received: from top.cs.vu.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKk3s-000081C; Tue, 27 Jul 93 01:07 PDT
Received: from galjoen.cs.vu.nl by top.cs.vu.nl id aa24800;
          27 Jul 93 10:06 MET DST
Date:     Tue, 27 Jul 93 10:06:35 MET DST
cc:       AmigaE@bkhouse.cts.com
Message-ID:  <9307271006.aa27494@galjoen.cs.vu.nl>
From: Elschot VAW <velschot@cs.vu.nl>
To: Politikill@cup.portal.com
Subject: Re:  What's everyone working on?

I'm trying to get into action a Scanner-driver=-programm, to work with the
MS300-x Serial scanner... so far people refuse to give helpfull info...:(
see ya!
vinny

From crash!serv-200.dfki.uni-kl.de!dfki.uni-kl.de!langston Tue, 27 Jul 93 03:44:43 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 03:44:43 PST
Received: from uni-kl.de by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKmUm-00002MC; Tue, 27 Jul 93 03:43 PDT
Received: from serv-200.dfki.uni-kl.de by stepsun.uni-kl.de id aa14187;
          27 Jul 93 12:39 MET DST
Received: from serv-300.dfki.uni-kl.de by serv-200.dfki.uni-kl.de id aa01163;
          27 Jul 93 10:42 GMT
Received: from ws-304.dfki.uni-kl.de by serv-300.dfki.uni-kl.de id aa09662;
          27 Jul 93 10:42 GMT
cc: AmigaE@bkhouse.cts.com, langston@dfki.uni-kl.de
In-reply-to: Your message of "26 Jul 1993 21:14:14 PDT."
             <9307262114.2.22519@cup.portal.com>
Date: Tue, 27 Jul 1993 12:42:45 +0200
Message-ID:  <9307271042.aa09662@serv-300.dfki.uni-kl.de>
From: Mark Langston <langston@dfki.uni-kl.de>
To: Politikill@cup.portal.com
Subject: Re: What's everyone working on?


Well, once I get back to the States (end of August), I'll be working on:

     *  FLUID  -- a cognitive model of text comprehension based on Walter
                  Kintsch's Construction-Integration model.  Will allow
                  parsing of text, automatic semantic-net construction,
                  AI-based auto-propositionalizing of texts.  Full GUI.

     *  KIWi   -- a port of an AI project developed here at the DFKI.  Learns
                  from text and/or examples (current implementation learns how
                  to program in LISP).  Also generates it's own examples (could
                  be extended to actually write programs).  Full GUI.  Will
                  interface with FLUID for understanding plaintext, such as
                  manuals.

     *  SemSpace  -- A knowledge representation method based on the concept of
                  semantic spaces.  Will include routines for holographic
                  indexing, and possible multidimensional folding for storage
                  efficiency.  Meant to be a back-end 'memory' for FLUID and KIWi.

(This is what I needed all the array info for! :-)  )
  I originally intended to write nifty utilities and the like, but I really should
focus on what I know best.  Besides, there are hardly any AI or model-based apps
for the Amiga.  Perhaps I can change that.  Expected release date:  Early '94.
Should be in beta-test by December (studies permitting).

Whups!  Almost forgot two:

     *  AmiTierra  -- A port of the now-famous Tierran Artificial Life virtual
                  computer, found in Unix and MS-DOS implementations, currently.
                  This thing is crying out for an Amiga port, since it requires
                  multitasking.

     *  NVir   -- A testbed environment for multiple autonomous agents.  Ideal for
                  experimenting with Artificial Life concepts, robot control 
                  structures, etc.  256-color, 3D, multiple POV, with several
                  agents included.  Will include an 'Agent Factory', to allow quick
                  development of simple agents with multiple sensor arrays.  Will
                  also provide Vir, a flexible agent design language for those who
                  want to work from the ground up.  This project may take until
                  Mid '94.  Should be beta'ed by Feb. or March of '94.

Hi ho, hi ho, it's back to slog away at this damn modelling work I'm supposedly
being paid to do here....la tee da.


-Mark "we was small, angry men..." Langston

langston@memstvx1.memst.edu
currently holed up at:  langston@dfki.uni-kl.de

From crash!axion.bt.co.uk!D.Higginson Tue, 27 Jul 93 05:46:16 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 05:46:16 PST
Received: from zaphod.axion.bt.co.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKmiO-0000h1C; Tue, 27 Jul 93 03:57 PDT
Received: from elephant.axion.bt.co.uk by zaphod.axion.bt.co.uk with SMTP (PP); Tue, 27 Jul 1993 11:56:33 +0100
Message-Id: <m0oKmiO-0000h1C@crash.cts.com>
Date: Tue, 27 Jul 93 11:56:29 BST
From: D.Higginson@axion.bt.co.uk
To: AmigaE@bkhouse.cts.com
Cc: D.Higginson@axion.bt.co.uk
Subject: Re: What's everyone working on?


I haven't seen my Amiga for 3 weeks, because I'm working
away from home.

However, I do have some things under construction/at the
back of my mind.

The first is that I plan to write a really good Intuition
database. I read some comments in a magazine that raved on
about how good BBase II was .... so I got it. It's crap
(IMHO). It was written in AMOS, has a maximum of 9 fields
per record and is the most user-hostile program I've come
across in ages. Mine would be nothing fancy - just simple
and flexible.

I also have a play-by-mail game under construction at the
moment. The basic idea is that you get several players,
who each get the same map. They have to decide what to do,
and then issue orders back to the person running the game
on what to do next. PBMs have been around for ages in a
paper-based form. I wrote a disk-based version called "AD
ARMA" in AMOS a while back, but it wasn't very flexible
(but at least it worked - well sort of). Hopefully I can
write a version which could be used via disk, BBS or EMail.

Dave.

From crash!genie.geis.com!g.beasley2 Tue, 27 Jul 93 07:49:14 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 07:49:14 PST
Received: from vmbb.cts.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKp4q-00004AC; Tue, 27 Jul 93 06:28 PDT
Received: from relay2.geis.com by vmbb.cts.com with smtp
	(Smail3.1.28.1 #9) id m0oKp4m-0002QcC; Tue, 27 Jul 93 06:28 PDT
Received: by relay2.geis.com
	(1.37.109.4/15.6) id AA05513; Tue, 27 Jul 93 14:28:45 +0100
Message-Id: <9307271328.AA05513@relay2.geis.com>
Date: Mon, 26 Jul 93 19:33:00 BST
X-Genie-Id: 7355610
X-Genie-From: G.BEASLEY2
From: g.beasley2@genie.geis.com
To: amigae-request@bkhouse.cis.com
Cc: amigae@bkhouse.cts.com
Subject: Where is the mail?

Hi there,
 
I started getting your message feed in the middle of last week as did
a freind of mine.  In the past 48 hours I have received no mail while
he has.  I know that this is not because the mail was addressed
directly to him because one of the letters he got was a response to
something that I wrote.  My address is through GEnie
(g.beasley2@genie.geis.com) and his is through Portal.  I just
thought that I would bring this to your attention.  Thanks.
 
George...
 

From crash!axion.bt.co.uk!D.Higginson Tue, 27 Jul 93 07:50:47 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 07:50:47 PST
Received: from zaphod.axion.bt.co.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKqHq-0000EvC; Tue, 27 Jul 93 07:45 PDT
Received: from elephant.axion.bt.co.uk by zaphod.axion.bt.co.uk with SMTP (PP); Tue, 27 Jul 1993 15:45:19 +0100
Message-Id: <m0oKqHq-0000EvC@crash.cts.com>
Date: Tue, 27 Jul 93 15:45:16 BST
From: D.Higginson@axion.bt.co.uk
To: AmigaE@bkhouse.cts.com
Cc: D.Higginson@axion.bt.co.uk
Subject: Initialising variables in objects


Why is it that sometimes you can write something like:

object.field:=variable

and it will work fine, but if you try:

object.field:=function()

then EC will stop in its tracks and present you with an
'illegal reference' or some such error message.

However, if you assign the value to a variable first,
everything is ok:

fred:=function()
object.field:=fred

I know that I have already got a way of getting round
this, but it's not very elegant, is it?

Perhaps I am missing something (like my brain :-)...

Dave.

From crash!mars.let.uva.nl!wouter Tue, 27 Jul 93 09:48:51 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 09:48:51 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKrnT-00002hC; Tue, 27 Jul 93 09:22 PDT
Received: by mars.let.uva.nl id AA07309
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Tue, 27 Jul 1993 18:26:25 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Tue, 27 Jul 1993 18:26:25 +0200
Message-Id: <199307271626.AA07309@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: includes and stuff

>> Salve, amici!
>> 
>> [xpk stuff deleted]
>> I'm not 100% sure the xpkmaster.m module is exactly the way it should be. 
>> Running Showmodule through it, it came up the way I expected, but I should
>> warn you that I did NOT use the standard 'p2m' program to create the
 
I checked the file format, but that seems to be OK (of course I don't
know if that also holds for the actual registers etc.).
 
>> module, as I don't have c include files, and I didn't feel like using
>> harddrive space on maintaining C include files when I very much prefer
>> working in E.
 
You only need the xpk_whatever_pragmas.h file, which you can delete after
you've succesfully completed the conversion. No space wasted, I'd say.
 
>> In any event, I'm pretty sure the xpkmaster.m module will work as
>> expected.  I simply examined the pragmas and wrote the binary module file
>> by hand using a sector editor.  I figured out Wouter's system for handling
 
Oh my what a work. didn't the xpk distribution have a pragmas file?
 
>> that kind of module work by comparing Showmodule's output of a module to 
>> that module's hex values.. pretty simple, really.  But, there's always the
>> chance that I screwed up somehow, so I thought I'd point this out.
>>
>> [more xpk]
>>
>> I'd like to request, however, that someone write a program to convert a
>> fairly standard text file to a binary module file for use by E.  The
>> current method of needing C or ASM include files to do something that
>> could easily be handled by examining the source code and re-writing it
>> to another program's syntax is inelegant, in my humble opinion.  In any
>> event, it slowed me down <grin>.
 
well, the reason for this is simply that those libraries usually
come with C/Asm includes anyway, and it's the fastest way to get
a .m file. It will take some time before all libraries come with
E modules.
 
>> That is to say, it'd be nice to have a program to take a text file that
>> had such syntax as:
>>
>> [syntax examples deleted] 
>> 
>> and so on, and convert it into binary .m files that E could use.  I've
>> found that most of these include files are not that difficult to
>> understand, and could be re-written as some other 'standard' that could be
>> converted to a binary.  
 
Well, for CONST and OBJECT definitions, with the coming v2.5 EC you can
just write them in E syntax, and use EC to produce a .m file.
For library definitions the .fd syntax might be nicer than pragmas
(they're more readable and quite language independant). I could probably
write an fd2module program. For now, some may have the fd2pragma program
that can be used to get from fd to module (Son le? :-).
 
>> In any event, if and when I FINALLY finish my own program, and I have
>> enough time to work on this, I might consider trying to create such a
>> utility.. but I really don't anticipate having the time to handle it.  If
>> someone else out there is willing to work on such a project, there is at
>> least one user out here who would be grateful.
 
Wouter
 
   ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
 / __/    wenn er wahr ist" - Wittgenstein
/___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-

From crash!dmi.usherb.ca!dubes00 Tue, 27 Jul 93 16:14:47 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 16:14:47 PST
Received: from roselin.DMI.USherb.CA by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKsVU-00008jC; Tue, 27 Jul 93 10:08 PDT
Received: from tohi.DMI.USherb.CA by roselin.DMI.USherb.CA with SMTP id AA20918
  (5.65c/IDA-1.4.4 for <amigae@bkhouse.cts.com>); Tue, 27 Jul 1993 13:08:01 -0400
Received: by tohi.DMI.USherb.CA id AA19394
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Tue, 27 Jul 1993 13:06:45 -0400
Message-Id: <199307271706.AA19394@tohi.DMI.USherb.CA>
Date: Tue, 27 Jul 1993 13:06:44 -0400 (EDT)
X-Mailer: ELM [version 2.4 PL21]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 38
From: STECY DUBE <dubes00@dmi.usherb.ca>
To: amigae@bkhouse.cts.com
Subject: How to unsubscribe from this list?

Subject says it all..

Thanks!
Stecy

From crash!cup.portal.com!Politikill Tue, 27 Jul 93 16:15:25 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 16:15:25 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKuMJ-00002NC; Tue, 27 Jul 93 12:06 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.383) 
	id AA01268; Tue, 27 Jul 93 12:10:41 -0700
Received: from hobo  by portal.unix.portal.com (1.685) 
	id AA06062; Tue, 27 Jul 93 12:10:38 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA11541; Tue, 27 Jul 93 12:10:37 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 44
Date: Tue, 27 Jul 93 12:10:36 PDT
Message-Id: <9307271210.2.22837@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Re: CHIP specifier

>>
>> I would also greatly appreciate a chip specifier. What are
>> the advantages of storing this sort of data in a separate
>> file? IMO, it only creates problems for the end-user when
>> they come to copy your product to their hard disk or
>> whatever.
>>
>> Why not give the compiler a command-line option to
>> incorporate graphics/sound files into the finished
>> program. E could give the program a pointer to a
>> structure which tells it where the memory is etc. In this
>> way, Amiga E could achieve a 'memory bank' type operation
>> which is what has helped AMOS become so incredibly
>> popular. What do you think Wouter? Is this feasible?
>
>I requested this when E first came out (remember Wouter?) and _still_
>think its a good idea.


    I think this is a good idea, but would rather wait for it if it would
delay 2.5. Let it come out later in 2.6 or something. This could also be
accomplished now in the style of EPP with an external program. It would
probably require a small module/lib to be made, and the info could be
UUencoded into text, stuck into the code as an argument (a very LONG argument
at that!) to a function which would decode and load it into memory, where E
could access it. A kind of LINKER. It shouldn't take up more space than have
EC code it in some proprietary way. Someone would just have to implement a way
of UUencoding it into text, so EC doesn't choke on it. All the LINKs would be
put at the end of the code before it was compiled. 

Whatcha think?

 / / /
/_/_/iZ

MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC


*-- GammaTag Version 2.8 --*
*-- Yeah, but what's the speed of DARK? 

From crash!cup.portal.com!Politikill Tue, 27 Jul 93 16:15:28 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 16:15:28 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKuMP-00002NC; Tue, 27 Jul 93 12:06 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.383) 
	id AA01278; Tue, 27 Jul 93 12:10:47 -0700
Received: from hobo  by portal.unix.portal.com (1.685) 
	id AA06068; Tue, 27 Jul 93 12:10:43 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA11560; Tue, 27 Jul 93 12:10:42 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 45
Date: Tue, 27 Jul 93 12:10:41 PDT
Message-Id: <9307271210.3.22837@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Re: $VER and Workbench Searchpaths

>My question was a little different, though.  I'm trying to find out the search
>path for a program that ISN'T Installer.  That is, I'm running a program from
>an icon (any ol' program), and I want that program to have the search path tha
t
>Workbench is using.  How do I get that?  I don't see any convenient way to
>handle it yet.
>
>Y'see, my program accepts an argument to execute a command from within it
>(specifically, my program is a fortune-cookie program, and I am trying to writ
e
>something that will pass a command such as 'more' through to it, so people can
>view the resulting fortune through more.. or muchmore, or a text editor, or
>whatever they want to do with it).  When called from CLI, the spawned CLI
>process gets the same path that the current one has, so I don't have to search
>for it in any way.. AmigaDOS handles it for me.  But, when called from an Icon
,
>my program doesn't have a search-path passed to it (even though Workbench
>itself has a search path within IT, through which it finds the programs it
>needs to run).  I haven't found a way to get that searchpath.
>
>Does anyone know?
>
>- Trey


    I was just looking at some source for a system monitor which iconifies
itslef, and I think I may have found what you are looking for. Under 2.0+ I
think the system sets up some sort of variable as PROGDIR: this is where the
program is. So if you do a lock on PROGDIR: and then look inside, I think you
will find everything. This should work. I know most programs I have that fail
because I run them through ARexx while not in the current directory (strange
way, I know) ask for PROGDIR: (Term, Spot....etc)

 / / /
/_/_/iZ

MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC


*-- GammaTag Version 2.8 --*
*-- He's dead Jim. Pass the Ketchup!

From crash!cup.portal.com!Politikill Tue, 27 Jul 93 16:16:03 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 16:16:03 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKvrf-0000LoC; Tue, 27 Jul 93 13:43 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.383) 
	id AA15704; Tue, 27 Jul 93 13:47:10 -0700
Received: from hobo  by portal.unix.portal.com (1.685) 
	id AA09737; Tue, 27 Jul 93 13:47:06 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA00707; Tue, 27 Jul 93 13:47:04 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 31
Date: Tue, 27 Jul 93 13:47:03 PDT
Message-Id: <9307271347.1.12858@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Re: What's everyone working on?

OK....got those 5.  I really doubt anyone else is working on something
similar...:-) Does sound very interesting, but I am afraid I would not be able
to eta anything of this caliber :-(

>     *  FLUID  -- a cognitive model of text comprehension based on Walter
>     *  KIWi   -- a port of an AI project developed here at the DFKI.  Learns
>     *  SemSpace  -- A knowledge representation method based on the concept of
>     *  AmiTierra  -- A port of the now-famous Tierran Artificial Life virtual
>     *  NVir   -- A testbed environment for multiple autonomous agents.  Ideal



>-Mark "we was small, angry men..." Langston

Current address(es):

>langston@memstvx1.memst.edu
>currently holed up at:  langston@dfki.uni-kl.de

 / / /
/_/_/iZ

MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC


*-- GammaTag Version 2.8 --*
*-- "Earth was not earth before her sons appeared."

From crash!cup.portal.com!Politikill Tue, 27 Jul 93 16:16:06 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 16:16:06 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKvsF-0000KQC; Tue, 27 Jul 93 13:43 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.383) 
	id AA15834; Tue, 27 Jul 93 13:47:45 -0700
Received: from hobo  by portal.unix.portal.com (1.685) 
	id AA09763; Tue, 27 Jul 93 13:47:41 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA00836; Tue, 27 Jul 93 13:47:39 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 140
Date: Tue, 27 Jul 93 13:47:37 PDT
Message-Id: <9307271347.4.12858@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Amiga E Projects List

OK People! Here is what I got so far:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Jeffrey J Peden ][ (WiZkId | Politikill@cup.portal.com)

      * (E)(D)(S) - E Development System: Complete programming environment for
           the E language.  Gadtools GUI, 2.0+
           * Current state: GUI done; some routines working; needs memory
                            management help; needs editor; needs some RAID
           * Expected release: Early September; coincide w/ E 2.5?
      * GammaMail - Centralized E-Mail management system: Integrated QWK
           reader, point mail processor (Fido), UUCP (?) implementation,
           simple serial i/o functions to execute sricpt in order to retrieve
           QWK packets, Arexx port for calling other programs from main
           interface, built in editor.
           * Current state: Started as port of GammaTag from ARexx; GammaTag
                            3.0 never made it past GUI implementation;
                            Scrapped/Put on hold for now; needs a solid base.
           * Expected Release: N/A
===============================================================================
    George Beasley (BeanMan | g.beasley2@genie.geis.com)

      * CreepShow - D&D type adventure/RPG: Features great looking interface,
           animations, modular editors(registered version only). 64 colors.
           AGA version to come.
           * Current state: 2.x  almost ready for  eta release. Anims need to
                            be implemented.  Editors for objects, maps and
                            others near final.  After   release, just bug
                            fixes.
           * Expected release: Early August. 3.0 should be ready about one
                               week after 2.x is released in  eta.

      * (E)(D)(S) - Co-Working on the (E)(D)(S) project. See WiZkId

      * Sound-Off - GUI front-end for UPD.  Allows playing of sounds, ids, and
           speaking through UPD sound-daemon.
           * Current state: 1.7 ready for release. 2.0 will feature viewing of
                            samples through interface. Possible AppIcon
                            feature.
           * Expected release: 1.7 ready for release; 2.0 Mid-Late August
===============================================================================
    Mark Langston (langston@dfki.uni-kl.de | langston@memstvx1.memst.edu)

      * FLUID  - a cognitive model of text comprehension based on Walter
           Kintsch's Construction-Integration model.  Will allow
           parsing of text, automatic semantic-net construction,
           AI-based auto-propositionalizing of texts.  Full GUI.
           * Current state: N/A
           * Expected release: N/A

      * KIWi - a port of an AI project developed here at the DFKI.  Learns
           from text and/or examples (current implementation learns how
           to program in LISP).  Also generates it's own examples (could
           be extended to actually write programs).  Full GUI.  Will
           interface with FLUID for understanding plaintext, such as
           manuals.
           * Current state: N/A
           * Expected release: N/A

      * SemSpace - A knowledge representation method based on the concept of
           semantic spaces.  Will include routines for holographic
           indexing, and possible multidimensional folding for storage
           efficiency.  Meant to be a back-end 'memory' for FLUID and KI
           * Current state: N/A
           * Expected release: N/A

      * AmiTierra - A port of the now-famous Tierran Artificial Life virtual
           computer, found in Unix and MS-DOS implementations, currently.
           This thing is crying out for an Amiga port, since it requires
           multitasking.
           * Current state: N/A
           * Expected release: N/A

      * NVir - A testbed environment for multiple autonomous agents.  Ideal for
           experimenting with Artificial Life concepts, robot control
           structures, etc.  256-color, 3D, multiple POV, with several
           agents included.  Will include an 'Agent Factory', to allow quick
           development of simple agents with multiple sensor arrays.  Will
           also provide Vir, a flexible agent design language for those who
           want to work from the ground up.  
           * Current state: N/A
           * Expected release: Mid '94.  Should be beta'ed by Feb/March of '94.
===============================================================================
  Joseph E. Van Riper ]I[  (jvanriper@uncavx.unca.edu | jvanripe@nyx.cs.du.edu)
  Cheese Olfactory Workshop (COW)

      * Quip - The Fortune Cookie Program From Hell: The most flexible fortune
           cookie program ever written on any platform.  Req. WB 2.04+
           Quip provides for environment variable support, prefix & suffix
           files, reqtools.library requesters, sequential or random
           selection of quips, QuipScript reading (very powerful),
           date/time support, Citadel support, multiple-quip generation,
           and too many more features to go into.  Noone should want for
           a better fortune cookie program.  Ever.
           * Current State: Release 0.07d, finished most routines, few more
                            bug fixes needed, now trying to implement xpk 
                            routines so datafiles can be crunched.
           * Expected release: Probably late August, regardless of the state
                            of Quip, I'll finally release it to the general
                            public because I won't have enough time to work 
                            on it as enthusiastically.
      * QuipArc - supplement prog for Quip: uses xpk support for crunching
           quips down.  Give it a datafile, tell it how the quips are
           separated, and QuipArc will generate a new datafile for Quip
           to use.  If you want the new datafile to be crunched with
           an xpk library, it'll do it.
           * Current State: Nowhere NEAR finished.  Barely started
           * Expected release: Hopefully late August, with Quip.
===============================================================================
   Dave Higginson (D.Higginson@axion.bt.co.uk)

      * (No Name) - A simple and flexible Intuition Database for the Amiga
           * Current state: Not started
           * Expected release: N/A
      * (No Name) - A Play by mail game. The basic idea is that you get 
           several players, who each get the same map. They have to decide
           what to do, and then issue orders back to the person running 
           the game on what to do next.
           * Current state: Not Started
           *Expected release: N/A
===============================================================================

Thanx to all who have already added their info.  Everything looks like it will
be very interesting when finsihed. 

Don't forget to add stuff you have already written, and anything you are
thinking about writing.  Any ideas you have for a program should go here.
Also, you can put out a request for help here in this list.

 / / /
/_/_/iZ

MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC


*-- GammaTag Version 2.8 --*
*-- Modesty is good bait when fishing for praise.

From crash!indirect.com!nerini Tue, 27 Jul 93 16:16:10 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 16:16:10 PST
Received: from indirect.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKwpq-0000IeC; Tue, 27 Jul 93 14:45 PDT
Received: by indirect.com (4.1/INDIRECT-BP-1.3)
	id AA28872; Tue, 27 Jul 93 14:44:03 MST
Message-Id: <9307272144.AA28872@indirect.com>
Date: Tue, 27 Jul 93 14:44:01 MST
X-Mailer: ELM [version 2.3 PL11]
From: nerini@indirect.com (William Nerini)
To: AmigaE@bkhouse.cts.com
Subject: Re: What's everyone working on.

 
Well At this moment I am working on, and have nearly complete the first
version of YAPE(Yet Another Programmer's Editor). A fairly complete and
FULLY 2.x,3.x functional text editor. right now I'm slogging through the
IFFParse.library...

[-----------------------------------------------------------------------------]
[        Dr. Barry Illuminatus      | The glory of our sciences               ]
[ IN:  Barry.Illuminatus@ASU.EDU    | And miltant alliances                   ]
[ FIDO:  Bill Nerini@1:114/146.0    | Reveal their BASIC WORTH                ]
[ VMB:  Box#7413 @ 602.240.6974     | Along the mounds of dead appliances!    ]
[ FINGER Me for my PGP PubKey       |                 - Frank Zappa           ]
[-----------------------------------------------------------------------------]

From crash!genie.geis.com!g.beasley2 Tue, 27 Jul 93 17:48:50 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 17:48:50 PST
Received: from relay2.geis.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oKySk-0000ASC; Tue, 27 Jul 93 16:29 PDT
Received: by relay2.geis.com
	(1.37.109.4/15.6) id AA23254; Tue, 27 Jul 93 23:18:36 +0100
Message-Id: <9307272218.AA23254@relay2.geis.com>
Date: Tue, 27 Jul 93 06:05:00 BST
X-Genie-Id: 4115023
X-Genie-From: G.BEASLEY2
From: g.beasley2@genie.geis.com
To: amigae@bkhouse.cts.com
Subject: Re: CHIP specifier

Reply:  Item #5717565 from D.HIGGINSON@AXION.BT.CO.UK@INET#
 
Does anyone have any E source for loading or saving IFF pictures or
brushes.  I need it baddly.  If I can't get it in E then I will
translate some C source I've got but I thought I would ask first to
hopefuly save me the trouble.
 
Thanks.
 
George...
 
 

From crash!IJS.si!Jure.Vrhovnik Tue, 27 Jul 93 23:46:38 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Tue, 27 Jul 93 23:46:38 PST
Received: from kanin.arnes.si by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oL4Cd-0000sYC; Tue, 27 Jul 93 22:37 PDT
X400-Received: by mta kanin.arnes.si in /PRMD=ac/ADMD=mail/C=si/; Relayed;
               Wed, 28 Jul 1993 07:37:25 +0200
X400-Received: by /PRMD=AC/ADMD=MAIL/C=SI/; Relayed;
               Wed, 28 Jul 1993 07:36:14 +0200
Date: Wed, 28 Jul 1993 07:36:14 +0200
X400-Originator: Jure.Vrhovnik@IJS.si
X400-Recipients: AMIGAE@BKHOUSE.CTS.com
X400-MTS-Identifier: [/PRMD=AC/ADMD=MAIL/C=SI/;30637082703991/345050@STENAR]
X400-Content-Type: P2-1984 (2)
Content-Identifier: SizeTris
Message-ID: <"41637082703991/795243 MRX*"@MHS>
From: Jure.Vrhovnik@IJS.si
To: AMIGAE@BKHOUSE.CTS.com
Subject: SizeTris

* I've completed my first version of Sizetris - the game of Tetris, which
runs in multitasking and workbench enviroment, is system friendly to all Amigas,
uses little memory, and has many options. The most original one is that you
can change size of the playing field (from 1x1 pixel upto max*max - the size
of your screen). 
Sizetris is going to appear in the Fish library collection soon.

My future intends:
* A scientifical program, which will be able to draw graphs, will include 
dozens of useful scientific functions, libraries etc.. For example, it will
have formulas for calculating Integrals, differencials, interpolation, 
square and cubic roots ... it will have a periodical system, scientific
constants etc.. The project is going to start when EV2.5 lauches out (I need 
float types for this ;-)

	Jure

From crash!cs.vu.nl!velschot Wed, 28 Jul 93 05:49:50 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 28 Jul 93 05:49:50 PST
Received: from top.cs.vu.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oL9aQ-0000CQC; Wed, 28 Jul 93 04:22 PDT
Received: from galjoen.cs.vu.nl by top.cs.vu.nl id aa20549;
          28 Jul 93 13:22 MET DST
Date:     Wed, 28 Jul 93 13:22:11 MET DST
cc:       amigae@bkhouse.cts.com
Message-ID:  <9307281322.aa26690@galjoen.cs.vu.nl>
From: Elschot VAW <velschot@cs.vu.nl>
To: g.beasley2@genie.geis.com
Subject: Re:  CHIP specifier

hello, if you get any routines, I'd be very happy if you
would send me a copy... I have an allomst perfectly running
Scanner programm, but I can't get it to save the scanned data!

thanx!
vinny
PS, C sources would be neat to!

From crash!dsi.unimi.it!silvera Wed, 28 Jul 93 07:41:25 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 28 Jul 93 07:41:25 PST
Received: from pluto.sm.dsi.unimi.it by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLB4P-0000k3C; Wed, 28 Jul 93 05:57 PDT
Received: by pluto.sm.dsi.unimi.it
	(1.37.109.4/16.2) id AA26976; Wed, 28 Jul 93 13:32:57 +0200
Date: Wed, 28 Jul 93 13:32:57 +0200
Message-Id: <9307281132.AA26976@pluto.sm.dsi.unimi.it>
From: paolo silvera <silvera@dsi.unimi.it>
To: AmigaE@bkhouse.cts.com
Subject: dbase ?

Oh well.
I and a friend of mine are projecting a little dbase program.
We have not experiences about database programs. If anyone has a features
wishlist... please send us. We'd like to build it using E compiler.

Our addresses is:

silvera@ghost.sm.dsi.unimi.it
ferrarl@ghost.sm.dsi.unimi.it

From crash!cup.portal.com!Politikill Wed, 28 Jul 93 15:50:52 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 28 Jul 93 15:50:52 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLJr6-0000RyC; Wed, 28 Jul 93 15:20 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.386) 
	id AA05170; Wed, 28 Jul 93 15:24:12 -0700
Received: from hobo  by portal.unix.portal.com (1.689) 
	id AA02180; Wed, 28 Jul 93 15:24:09 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA05090; Wed, 28 Jul 93 15:24:08 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 65
Date: Wed, 28 Jul 93 15:24:06 PDT
Message-Id: <9307281524.1.17100@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: MidStr

Hi everyone! 
    I figured out one main problem in my program (where I thought memory was
being munged up, I hadjust forgotten to define a variable as a string for use
in StringF()!) but have run into another one.

    I can't get MidStr() to work right.  It is reading it from the starting
point right, but I can't get it to stop! I am trying to get a version string
pulled out of a buffer I am getting from Read(). Before vtst was defined as a
string, it was working somewhat well (I was getting what I wanted), but I am
not sure whether it was stoping where I wanted. What I need is the original
version string, with the revision number bumped up by one.

=======================================================================

PROC findver(pos) /* pos is found in the prior proc */
  DEF endpos,
      vers,
      per,
      vn,
      vp,
      vns,
      nvers,
      rvers,
      vtst[80]:STRING

  endpos:=InStr(filbuf,'\n',pos) /* finding then end of the line */
  MidStr(vers,filbuf,pos,endpos-pos)

  per:=InStr(vers,'.',0)
  MidStr(vn,vers,per-2,2)
  vp:=Val(vn,NIL)
  MidStr(vns,vers,per+1,3)
  rvers:=Val(vns,NIL)
  rvers:=rvers+1

  /* finding the version/revision and bumping it up by one */

  MidStr(nvers,vers,0,per-2) 

  /* getting everything prior to the version/revision */

  StringF(vtst,'\s \d.\d',nvers,vp,rvers)

ENDPROC vtst

========================================================================

    If you have some other, better, or even working way of doing this, please
let me know, otherwise, can someone help me FIX this?

 / / /
/_/_/iZ


MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC




*-- GammaTag Version 2.8 --*
*-- SCOTTY: I think you gave me too much time, Captain.

From crash!minyos.xx.rmit.OZ.AU!s924723 Wed, 28 Jul 93 19:46:23 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 28 Jul 93 19:46:23 PST
Received: from peladon.rmit.OZ.AU by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLMCs-0000HLC; Wed, 28 Jul 93 17:50 PDT
Received: from minyos.xx.rmit.OZ.AU by peladon.rmit.OZ.AU with SMTP id AA07769
  (5.65c/IDA-1.4.4 for <amigae@bkhouse.cts.com>); Thu, 29 Jul 1993 10:50:44 +1000
Received: by minyos.xx.rmit.OZ.AU
Message-Id: <9307290050.16470@minyos.xx.rmit.OZ.AU>
Date: Thu, 29 Jul 1993 10:50:40 +1000 (EST)
X-Mailer: ELM [version 2.4 PL22]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 3847
From: s924723@minyos.xx.rmit.OZ.AU (Son Huu Le)
To: amigae@bkhouse.cts.com
Subject: Complete Xpk Mod


Here are the full xpk emodules from xpkdev25.lha. If you're planning
to use these modules, you'll need the xpkdev25.lha archive and it's 
companion, xpkusr25.lha (can be found on Aminet under util/pack). 

The following archive contains the four essential header files - 
                xpkmaster.m
                xpksub.m
                libraries/xpk.m
                libraries/xpksub.m

The xpkmaster and xpk are essentially the same as the one posted by
Joseph Van_Riper with one small difference:- the base has been rename from 
xpkmasterbase to xpkbase (was defined in xpkmaster.h :)

I have made no changes when converting them to emodules. The libraries/#?
where converted using Iconvert on the include/libraries/#?.i in the xpkdev
archive and the other two were convert using SAS/C fd2pragma then Wouter's
pragma2module. Posted for completeness. (;

Tada!
Son Le


begin 644 xpkemods.lha
M)?8M;&@U+9D%``"*#```U+;\&@``#VQI8G)A<FEE<UQX<&LN;6\Z!'UKO?:.^
M0Q+[JUK9TLV6;-\&^#HFQ.B(CP<<\"/`C+<^MN2W,S.S[,[=U$5>MS=[)NVYS
M67+K=X.T$CP/`\"/PU`````=___?__V6[3PMW#HHXVZEU]M%1&MW.XA%%_@E5
MHDQ(1J!^'*A&J./#?HOH'[61T$=$<$35J\V^\D,71YCSQJ3"O2U$:HHWLS3<(
M*!18?8N+&2+UI,=$_*&U#'5RYNP>99=:E3[(*>KS(W8-V"Y>!-UVE`JA!ZP@E
MN//-.FN]V$@;-L\ZBSUX[);&(L]M]^X@@?-$%^.(D(.SOF"*$'0]@\ZT(C7`$
M'`(-I,3!!TN$]*2:%#Y"5=U+Q;7SLZ'I#GSHE8>P`>72G5C+U=`CP-*5N/PM=
MF'F/5IAA?%M]8`^,U.ZEV+>@2>I\]F]BMPQF'R"&J),#;^XQ2\HAV+<;UPNDJ
MBD>T6[L7'4AU]B[]"G4J<\I)!^C3J7VV+GTA#>?L77Z]<8%!9;Z:V-VGGX4F4
MX?MD]U5R"%PMOS"#9<!@!/?'A/J+YC;?AI[B+,?58M4PJZT:8=X];ZV<<QA2$
M_KB*/'S#%>^P(=U]2M[3W.RX\W3W.J@(B%[MJ&TX\<;O1&-WDR<,LV++P'%V>
MBCER2(*3G4R43G';EE[4BY-PCMEFDGGFG*/NM/)EDGXY,*"S[.2>7COT2>&>$
M?://XAY^D>?JGGVSS^*OB?3.9?H;KC]Z%+3:]*'*QS[D+D22S]T.>S"E)GZ@E
MYVJX-;7VM'=CG"%LH]QT.J(*DIN$PU'>#GB?B)_XL-JFPW)/-P!U3+_K#ZJVE
M'W\'#)/COXA!K"Q<@>*;'P&*N@??P42\<M'*>>MOR\4AGBD]G!@S3GCVLV?'%
MTLP:8V][>#?,7IX9L;-SX&7)(+:AZCX6AO*$709SKK9S`$0S]H)&VF,-J,#=<
M<;('NF`I>;+ONL??=^7L?]`2NIR?&5P%X,^.KCSXZVCI+.PCTG:EPK@Y0#^UI
MLM6TVHCO@J:\<D^66;&8/3Q7\N<$4/W^_Q7^!;B4(\'LR7\)C^//?HEF)@_DL
M:6#^8#!]@<`=A&B%>C>7**VMV),?6/I%J,%:AL6W.N$".P>KLW6K2M%+K7/6,
MD.4*%9<0+`WGWE1-EQL>"A/;>&9G7[@?'G>?LQO6`W(!?YG#"A@I!"_V8KCX,
M?U<V(B_USBA4G(7^3%L6TV+BHW2%_@Q>N%%EQ]=2,!?WI5H58S2O[&'=<KN/O
M1C:AV`%_4Q=R%]ZU9?A9K?T,=3K5VZN6`1?S8@PHP)6**#_+G09U5Q'_%G!42
MI;6UMLA_P9TE^&&."*"X8_WF.ZXI3CUH.4$/]QCUV@0T+3JC3_VF.G=@:>/O(
MH\E^S1WTJC0B_68JZ("X$Q0?U&+%"#JFB''6_3S]3L01DU?Z#%9"L*!^>E6Q<
M4PVB/\QCB^].ZXJ)1#_*R"VZVZTJ*GLOR9QU1UUC+X3\=*?L0[T$1OA^*D4/-
M!,?(/X6.=&Q,?!?@IT]MJ%O<:&V=L@/[^=J><A:O][G[S!N(*0V`A756L]4OG
M795+7/A+CWYBG#134E0C:T5-1I)^-ADRX)Y<E"Y_AGE]DY_1JA^UBO\F#LYL:
M?"=5/V\,F^S/K`L?<#/BFPBC$>Z%`-D];EF\R_5HGK(54068G2GKU*1::`2]M
M;K$/'!I0=:D7G0>W2+G08LAYB''PE''R0.H@@US9!&BA:!UC%@A2-ORVW"0^E
MV8Z7EOH*,\!_),?GE&%I?,8XRXJ$'H(,%D`&BOB3-5U\<<G)137QR43,KXFXO
M<;@=47I8I,4R_+MUUU]\>D,O`%`$[5=5=N7'H!U07O2IK@U$=ZMY!>#$,!.WB
MI@)"OR==,7GNV;S75ZG4ZBH$Z:WKJW=A(2,R%-9%U;C6"BF\+K6Z?BW(_^*OX
MBERT%S-&/-B(/*=K_4IM?HJ>6,,?;*NB'CS7@]$-D$`HV2UL:#4M/`$``#`"6
M```;M_P:```2;&EB<F%R:65S7'AP:W-U8BYMM0<!&&-ZVC2T.]--":,(0H%`1
MH%`H%#^@T&@4&,:#(@QD8@1%4IL[&[9Z&[MIW;*^'(^[NY"+)_0H"4J>CQU9I
MQ$).'`#[KWH5/4!@)'\+\G6Q%2@!>)6*E$O)&^2,:3,L.OBHU.ZFJ8[.7'NB<
M,2*,DY#YB'>IJ51`]XCX"YNY:*['<Z,O8430Z^*>DU#&_7C&-)G17=\6JWAZI
M>1*%?]/+,>?]3D)/_5FW;TLH?`>>U7\?H:4\SCMB.9[\$9"J?27TVU9L?B'56
M6:9\?ZW6MOQ0.Q9V-P4V=@;2X]^&5V6RUF69+(54(5+;.\<:%4G4^2R56V.8!
M?B=Y>+N`CN([KX889:SB5:F4ZX,XWRAWP\E9F,^JEMB9?W&4RZ'AS%%&R?.+J
MA8U`N;=G=[[//1KSZO;2[)($34]?EH]>WO]-/@2`(4$M;&@U+6T```"'````.
MP+C\&@``"WAP:VUA<W1E<BYM.)\`9%-RM:4%S1)\IG`DX`*4&@3`L8M7XGB3;
M3&QI_#)CCBX4<`,IV6KZ*HE!KCCJ$KS9@AILJ<.!Q"O4&W'[:$ZORTJFMDC<_
MQX*GBDI[\/AP*X!_ZKL#Q*G?^\HS4?R[@-)7*8\\](C?PO^!-B^@'HDM;&@U1
M+5(```!X````-KK\&@``"'AP:W-U8BYM5L``0DJ6V9A>XDY'@2\``IP(E*<NZ
MR^199K_]J/'$MK.`X`!!JMNI1)TU9N5/OLHDEVB#*281EZ5Z<U@K&:<31:C5^
3S%RQ6L@/DP!CEZXL;_5!WV>``)TUN
``
end
size 2089

From crash!quasar.hacktic.nl!quasar!ekrieger Wed, 28 Jul 93 21:47:39 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 28 Jul 93 21:47:39 PST
Received: from xs4all.hacktic.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLO5J-0000RVC; Wed, 28 Jul 93 19:51 PDT
Received: from quasar.UUCP by xs4all.hacktic.nl with UUCP id AA11310
  (5.65c/IDA-1.4.4 for bkhouse.cts.com!amigae); Thu, 29 Jul 1993 04:27:10 +0200
Received: by utopia.hacktic.nl (1.65/waf)
	via UUCP; Thu, 29 Jul 93 00:20:25 GMT
	for bkhouse.cts.com!amigae
Received: by quasar.hacktic.nl (V1.16/Amiga)
	id AA008v8; Wed, 28 Jul 93 20:23:24 GMT
Date: Wed, 28 Jul 93 20:23:24 GMT
Message-Id: <9307282023.AA008v7@quasar.hacktic.nl>
X-Mailer: //\\miga Electronic Mail (AmiElm 1.19)
Organization: Private, Delft [NL]
Reply-To: ekrieger@quasar.hacktic.nl
From: ekrieger@quasar.hacktic.nl (Eric Krieger)
To: amigae@bkhouse.cts.com
Subject: How to code a BusyPointer?

I'm just started with Amiga E V2.1b, and i have some questions.

Could someone give me some hints how to use the function SetPointer()
(from the intuition.library), especially with the Array of data for
the BusyPointer?

I'm trying to "port" (ahum :) the example on page 275 of the
RKRM-Libraries, with the waitPointer, but i haven't succeeded yet.

In short, this is the important part of the C-code:

/* Start of Part */
UWORD   __chip waitPointer[] = {
        0x0000, 0x0000,         /* Reserved, must be NULL */
        0x0400, 0x07c0, 0x0000, 0x07c0,
        0x0100, 0x0380, 0x0000, 0x07e0,
        0x07c0, 0x1ff8, 0x1ff0, 0x3fec,
        0x3ff8, 0x7fde, 0x3ff8, 0x7fbe,
        0x7ffc, 0xff7f, 0x7efc, 0xffff,
        0x7ffc, 0xffff, 0x3ff8, 0x7ffe,
        0x3ff8, 0x7ffe, 0x1ff0, 0x3ffc,
        0x07c0, 0x1ff8, 0x0000, 0x07e0,
        0x0000, 0x0000,         /* Reserved, must be NULL */
};

void SetWaitPointer (struct Window *window)
{
    SetPointer(window, waitPointer, 16L, 16L, -6L, 0);
}

void processWaiting (struct Window *window)
{
    Delay(100);
    SetWaitPointer(window);     /* Call Busy-Pointer */
    Delay(400);
    ClearPointer(window);       /* Restore normal Pointer */
}

void main(int argc, char **argv)
{
    struct Window *win;

    if (IntuitionBase = OpenLibrary("intuition.library", 37L)) {
        if (win = OpenWindowTags(NULL,
                            WA_Left,        20,
                            WA_Top,         10,
                            WA_Width,       300,
                            WA_Height,      90,
                            WA_MaxWidth,    ~0,
                            WA_MaxHeight,   ~0,
                            TAG_DONE) )
        {
            processWaiting(win);
            CloseWindow(win);   /* Close this Window */
        }
        CloseLibrary(IntuitionBase);
    }
}
/* End of Part */


Any example(s)/hint(s) will be appreciated to make this a usable E-source!

Thanks in advance!

--
                      Q U A S A R : Last Point of Endless Time
 _____________    __________________________________________________
/ Best regards,\ / The Netherlands (Europe)        FIDO: 2:285/1.10 \
\ Eric Krieger / \ ekrieger@quasar.hacktic.nl  AmigaNET: 39:102/1.21/
 ~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

From crash!genie.geis.com!g.beasley2 Wed, 28 Jul 93 23:46:32 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Wed, 28 Jul 93 23:46:32 PST
Received: from relay2.geis.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLQnL-00007EC; Wed, 28 Jul 93 22:44 PDT
Received: by relay2.geis.com
	(1.37.109.4/15.6) id AA29646; Thu, 29 Jul 93 06:45:13 +0100
Message-Id: <9307290545.AA29646@relay2.geis.com>
Date: Thu, 29 Jul 93 05:55:00 BST
X-Genie-Id: 4233527
X-Genie-From: G.BEASLEY2
From: g.beasley2@genie.geis.com
To: velschot@cs.vu.nl
Cc: amigae@bkhouse.cts.com
Subject: Re:  IFF Source for E

Reply:  Item #6652098 from VELSCHOT@CS.VU.NL@INET#
 
One way or another, I am going to have some code for IFF in E withn
in two weeks.  I'm sure that I can translate the C code that I have.
I only posted the request to save me the time and trouble of actually
having to do it.  If I don't get a response by next week, I am going
to start writing it myself.  I will gladdly give, you and whoever else
wants it, the source when done.
 
George...
 

From crash!axion.bt.co.uk!D.Higginson Thu, 29 Jul 93 03:44:33 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 29 Jul 93 03:44:33 PST
Received: from zaphod.axion.bt.co.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLV9I-0000nMC; Thu, 29 Jul 93 03:23 PDT
Received: from elephant.axion.bt.co.uk by zaphod.axion.bt.co.uk with SMTP (PP); Thu, 29 Jul 1993 11:22:59 +0100
Message-Id: <m0oLV9I-0000nMC@crash.cts.com>
cc: AmigaE@bkhouse.cts.com, D.Higginson@axion.bt.co.uk
In-reply-to: Your message of Wed, 28 Jul 93 15:24:06 -0700. <9307281524.1.17100@cup.portal.com>
Date: Thu, 29 Jul 93 11:22:41 BST
From: D.Higginson@axion.bt.co.uk
To: Politikill@cup.portal.com
Subject: Re: MidStr


Check that you have got the parameters to InStr the right
way round - all languages order these things differently
and I can never remember which way round they go.

Next insert a WriteF('\d\n',endpos) after the endpos
assignment. If there is no \n in the buffer, endpos-pos
will be a negative number and could cause MidStr to return
all the characters it finds.

Also check that the parameters to MidStr are right. I once
got the parameters to StrCpy the wrong way round - I
thought it would be (source,dest) but it isn't. Took me
the best part of a day to figure that bug out.

Some E string functions require you to use E strings -
i.e. declare them as s[80]:STRING or something like that.
I would guess that this is the most likely problem.
Remember that if you do DEF a,b:STRING then a is a LONG
and b is a STRING. A similar statement in Pascal would
make both variables strings - that's a feature of E which
has caught me out many a time.

Hope this helps :-)

Dave.

From crash!axion.bt.co.uk!D.Higginson Thu, 29 Jul 93 05:51:41 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 29 Jul 93 05:51:41 PST
Received: from zaphod.axion.bt.co.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLWRb-0000dWC; Thu, 29 Jul 93 04:46 PDT
Received: from elephant.axion.bt.co.uk by zaphod.axion.bt.co.uk with SMTP (PP); Thu, 29 Jul 1993 12:46:29 +0100
Message-Id: <m0oLWRb-0000dWC@crash.cts.com>
Date: Thu, 29 Jul 93 12:46:25 BST
From: D.Higginson@axion.bt.co.uk
To: AmigaE@bkhouse.cts.com
Cc: D.Higginson@axion.bt.co.uk
Subject: Wishlist


Here's my list of things I would like to have when I'm
programming in E:

MAJOR

* Object Oriented support (already planned anyway, I think)
* Ability to break code into units like Pascal
* Ability to include files for graphics/sound at the
  command line
* Proper object support, so I can use
  window.userport.sigbit

MINOR

* Some way of specifying more than one variable of a given
  type, e.g. instead of A:INT,B:INT,C:INT use A;B;C:INT
* Some way of saving register values for programming hooks
* Don't know if there's a reason for this, but some E
  module object names appear to be different, e.g. mp
  instead of msgport, sigbit instead of mp_sigbit

Remember, these are just suggestions

Dave.

From crash!kirk.safb.af.mil!BWILLS Thu, 29 Jul 93 07:44:44 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 29 Jul 93 07:44:44 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLYtL-0000SqC; Thu, 29 Jul 93 07:23 PDT
Message-Id: <m0oLYtL-0000SqC@crash.cts.com>
Date: 29 Jul 93 09:21:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: MidStr

Hi, Jeffrey.  In response to your message:

>    I can't get MidStr() to work right.  It is reading it from the starting
>point right, but I can't get it to stop! I am trying to get a version string
>pulled out of a buffer I am getting from Read(). Before vtst was defined as a
>string, it was working somewhat well (I was getting what I wanted), but I am
>not sure whether it was stoping where I wanted. What I need is the original
>version string, with the revision number bumped up by one.

=======================================================================

PROC findver(pos) /* pos is found in the prior proc */
  DEF endpos,
      vers,
      per,
      vn,
      vp,
      vns,
      nvers,
      rvers,
      vtst[80]:STRING

  endpos:=InStr(filbuf,'\n',pos) /* finding then end of the line */
*******************************************************************************
*** Your problem starts here.  vers is uninitialized, so it contains a value
*** that looks like an address.  MidStr() copies characters to the nonexistent
*** string at "address" vers.  You need to declare these as STRING or allocate
*** the using String().   Basically, this is copying characters into random 
*** memory locations, a very effective way to corrupt your memory :(  I noticed
*** this happening in several places in the code that follows this statement. 
***
  MidStr(vers,filbuf,pos,endpos-pos)

[statements removed]

*** StringF() still might work under lucky circumstances.
  StringF(vtst,'\s \d.\d',nvers,vp,rvers)

*** As for your run-on problem, it may be a symptom of this.  If it persists
*** then post, post again!  :-)


Later.
-- Barry

From crash!rcbins.mu.wvnet.edu!AMONROE Thu, 29 Jul 93 09:49:37 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 29 Jul 93 09:49:37 PST
Received: from byrd.mu.wvnet.edu by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLa9g-0000PmC; Thu, 29 Jul 93 08:44 PDT
Received: by byrd.mu.wvnet.edu (5.57/Ultrix3.0-C)
	id AA29916; Thu, 29 Jul 93 11:44:08 -0400
Received: From RCBINS/WORKQUEUE by bins00.mu.wvnet.edu
          via Charon-4.0A-VROOM with IPX id 100.930729114446.800;
          29 Jul 93 11:44:51 +0500
Message-Id: <MAILQUEUE-101.930729114435.512@rcbins.mu.wvnet.edu>
Date:         29 Jul 93 11:44:35 EST
Priority: normal
X-Mailer:     Pegasus Mail v2.3 (R5).
From: "R. Alan Monroe"  <AMONROE@rcbins.mu.wvnet.edu>
To: amigae@bkhouse.cts.com
Subject: Wishlist

>* Don't know if there's a reason for this, but some E
>  module object names appear to be different, e.g. mp
>  instead of msgport, sigbit instead of mp_sigbit

I agree, E will have a better reputation in the Amiga community
if it is 100% standardized with C='s includes...

Alan

From crash!cislabs.pitt.edu!cjfst4 Thu, 29 Jul 93 12:17:08 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 29 Jul 93 12:17:08 PST
Received: from phantom.cislabs.pitt.edu by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLc3F-00008dC; Thu, 29 Jul 93 10:46 PDT
Received: from meg.cislabs.pitt.edu by phantom.cislabs.pitt.edu (4.1/1.34)
	id AA14937; Thu, 29 Jul 93 13:45:56 EDT
Received: by meg.cislabs.pitt.edu (4.1/EMI-2.1)
	id AA07682; Thu, 29 Jul 93 13:45:56 EDT
Message-Id: <9307291745.AA07682@meg.cislabs.pitt.edu>
Date: Thu, 29 Jul 1993 13:45:55 -0400 (EDT)
In-Reply-To: <m0oLWRb-0000dWC@crash.cts.com> from "D.Higginson@axion.bt.co.uk" at Jul 29, 93 12:46:25 pm
X-Mailer: ELM [version 2.4 PL21]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 858
From: cjfst4@cislabs.pitt.edu
To: amigae@bkhouse.cts.com (Amiga-E List)
Subject: Re: Wishlist

> 
> 
> Here's my list of things I would like to have when I'm
> programming in E:
> 
> MAJOR
> 
> * Object Oriented support (already planned anyway, I think)

> * Proper object support, so I can use
>   window.userport.sigbit

Object-orientedness was in from the first release, its just not
working right yet (right, Wouter?).

I definately want to see proper object support like above.
  ----------

But lets not forget to thank Wouter for a wonderful language!

---
   Chad Freeman, inet: cjfst4+@pitt.edu, bnet: cjfst4@pittvms, BIX: cfreeman
    Read Amiga Report, its the best on-line magazine around (+ I'm in it!)
 ------------------------------------------------------------------------------
   Wealth is lent us, friends are lent us, man is lent, kin is lent; all
   this earth's frame shall stand empty.                          -The Wanderer




From crash!kirk.safb.af.mil!BWILLS Thu, 29 Jul 93 18:33:52 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 29 Jul 93 18:33:52 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLeBR-0000QMC; Thu, 29 Jul 93 13:02 PDT
Message-Id: <m0oLeBR-0000QMC@crash.cts.com>
Date: 29 Jul 93 15:00:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: re: Wishlist

>>* Don't know if there's a reason for this, but some E
>>  module object names appear to be different, e.g. mp
>>  instead of msgport, sigbit instead of mp_sigbit
>
>I agree, E will have a better reputation in the Amiga community
>if it is 100% standardized with C='s includes...

Once you become accustomed to the modules' naming conventions it's not difficult
to use the RKRMs to locate components in the modules.  What about all the code
already written against E's current modules?  I myself would not look forward to
converting a project the size of my EPP program (or larger!) if Wouter changes
the existing component names.  Anyway, I think mp_sigbit is redundant since the
component belongs to an mp object.  I'm convinced Commodore set that convention
because of C programmers' infamous tendency to use such descriptive variable
names as "a" and "x".  :-)

-- Barry

From crash!cislabs.pitt.edu!cjfst4 Thu, 29 Jul 93 18:34:27 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 29 Jul 93 18:34:27 PST
Received: from phantom.cislabs.pitt.edu by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLhQv-0000AGC; Thu, 29 Jul 93 16:30 PDT
Received: from meg.cislabs.pitt.edu by phantom.cislabs.pitt.edu (4.1/1.34)
	id AA26842; Thu, 29 Jul 93 19:30:44 EDT
Received: by meg.cislabs.pitt.edu (4.1/EMI-2.1)
	id AA08315; Thu, 29 Jul 93 19:30:42 EDT
Message-Id: <9307292330.AA08315@meg.cislabs.pitt.edu>
Date: Thu, 29 Jul 1993 19:30:41 -0400 (EDT)
In-Reply-To: <MAILQUEUE-101.930729114435.512@rcbins.mu.wvnet.edu> from "R. Alan Monroe" at Jul 29, 93 11:44:35 am
X-Mailer: ELM [version 2.4 PL21]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 870
From: cjfst4@cislabs.pitt.edu
To: amigae@bkhouse.cts.com (Amiga-E List)
Subject: Re: Wishlist


> I agree, E will have a better reputation in the Amiga community
> if it is 100% standardized with C='s includes...
> 
> Alan

What we need is an extension to EPP so we can say MODULE whatever and
have all its related modules included as well.  Wouter doesn't like it
because it slows the compiler down, etc., but it would be nice to have
as an option, and EPP would be the perfect place to do it, I think.
Right now I pity anyone who doesn't have the Includes and Autodocs
book.

   Chad Freeman, inet: cjfst4+@pitt.edu, bnet: cjfst4@pittvms, BIX: cfreeman
    Read Amiga Report, its the best on-line magazine around (+ I'm in it!)
 ------------------------------------------------------------------------------
   Wealth is lent us, friends are lent us, man is lent, kin is lent; all
   this earth's frame shall stand empty.                          -The Wanderer


From crash!kirk.safb.af.mil!BWILLS Thu, 29 Jul 93 21:44:55 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Thu, 29 Jul 93 21:44:55 PST
Received: from kirk.safb.af.mil by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLkze-0000YYC; Thu, 29 Jul 93 20:18 PDT
Message-Id: <m0oLkze-0000YYC@crash.cts.com>
Date: 29 Jul 93 22:18:00 CST
From: "Barry D. Wills" <BWILLS@kirk.safb.af.mil>
To: "amigae" <amigae@bkhouse.cts.com>
Subject: re: Wishlist

Chad, in reply to your message:

>> I agree, E will have a better reputation in the Amiga community
>> if it is 100% standardized with C='s includes...
>> 
>> Alan
>
>What we need is an extension to EPP so we can say MODULE whatever and
>have all its related modules included as well.  Wouter doesn't like it

I think you lost me...couldn't you just get this by setting up some PMODULES to
include whole groups of modules, like is done in some C header files?  Say,
    PMODULE 'everything'
and then use the DOS list command (or Wouter's D) to format the directory
listing of EMODULES:, redirect it to file everything.e, and voila, with a little
editing you have a huge file of nothing but MODULE statements.  If this is what
you want, then EPP can already do this.


From crash!axion.bt.co.uk!D.Higginson Fri, 30 Jul 93 01:42:17 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 30 Jul 93 01:42:17 PST
Received: from zaphod.axion.bt.co.uk by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLq1V-0000svC; Fri, 30 Jul 93 01:41 PDT
Received: from elephant.axion.bt.co.uk by zaphod.axion.bt.co.uk with SMTP (PP); Fri, 30 Jul 1993 09:40:55 +0100
Message-Id: <m0oLq1V-0000svC@crash.cts.com>
Date: Fri, 30 Jul 93 09:40:48 BST
From: D.Higginson@axion.bt.co.uk
To: AmigaE@bkhouse.cts.com
Cc: D.Higginson@axion.bt.co.uk
Subject: Naming conventions


Sorry I couldn't include the original message, but my
mail-reader won't let me.

I wouldn't be half as bad using the E object names if I
had documentation on them. However, the only documentation
I really use while programming are the RKRMs, which have
all their examples in C, using the proper include names.

I mentioned the "mp" case specifically because it caused
me problems. Now I know about it, I can avoid that problem
in the future, but how many other differences are there?

Commodore's convention of putting two characters, then
underscore, then the rest of the name is perfect for E
because of the way that E checks the first 2 characters to
work out what sort of identifier it is.

Dave.


P.S. Why does E insist on opening all the libraries -
Exec, Intuition, DOS, Graphics and Maths, even if you
don't use them all?

From crash!informatik.uni-hamburg.de!senoucci Fri, 30 Jul 93 05:45:05 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 30 Jul 93 05:45:05 PST
Received: from deneb.dfn.de by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLsd8-0000VHC; Fri, 30 Jul 93 04:28 PDT
Received: from fbihh.informatik.uni-hamburg.de by deneb.dfn.de (4.1/SMI-4.2)
	id AA05526; Fri, 30 Jul 93 13:27:41 +0200
Received: by fbihh.informatik.uni-hamburg.de (5.65+/FBIHH-1.12);
	id AA00594; Fri, 30 Jul 93 13:27:55 +0200
Message-Id: <9307301127.AA00594@fbihh.informatik.uni-hamburg.de>
Date: Fri, 30 Jul 1993 13:27:53 +0200 (MET DST)
X-Mailer: ELM [version 2.4 PL22]
Content-Type: text
Content-Length: 716
From: senoucci@informatik.uni-hamburg.de (Karim Senoucci)
To: AmigaE@bkhouse.cts.com
Subject: unsubscribe

Please unsubscriebe me as I don't have the time to empty my newsreader 
often enough till october when I will probably resubscribe.
Bye and happy holydays
Kasi Mir

-- 
-----------------------------------------------------------------------------
>  Karim "Kasi Mir" Senoucci   Student of computer sciences //| Virus Test  <
>  senoucci@informatik.uni-hamburg.de                    \\// | . Center .  <
>  "Life is a sequence of disasters"                      \/  |   AMIGA-    <
>  University of Hamburg in the beautiful north of Germany    |  Division   <
-----------------------------------------------------------------------------
>>  Only AMIGA makes it possible --- only Commodore makes it difficult !!  << 

From crash!cs.vu.nl!velschot Fri, 30 Jul 93 05:45:11 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 30 Jul 93 05:45:11 PST
Received: from top.cs.vu.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLt7H-00001eC; Fri, 30 Jul 93 04:59 PDT
Received: from galjoen.cs.vu.nl by top.cs.vu.nl id ab01977;
          30 Jul 93 13:58 MET DST
Date:     Thu, 29 Jul 93 10:00:18 MET DST
cc:       AmigaE@bkhouse.cts.com
Message-ID:  <9307291000.aa26449@galjoen.cs.vu.nl>
From: Elschot VAW <velschot@cs.vu.nl>
To: Politikill@cup.portal.com
Subject: Re:  MidStr

hello,
why not try this instead of MidStr()
DEF string[80]:STRING
DEF i
DEF t
FOR t:=startpos TO endpos
	INC i
	string[i]:=originalstring[t]
ENDFOR
SetStr(string,i)

vinny

From crash!cup.portal.com!Politikill Fri, 30 Jul 93 13:56:30 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 30 Jul 93 13:56:30 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLznz-0000YXC; Fri, 30 Jul 93 12:07 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.386) 
	id AA22634; Fri, 30 Jul 93 12:11:47 -0700
Received: from hobo  by portal.unix.portal.com (1.689) 
	id AA29892; Fri, 30 Jul 93 12:11:46 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA23318; Fri, 30 Jul 93 12:11:44 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 46
Date: Fri, 30 Jul 93 12:11:43 PDT
Message-Id: <9307301211.1.12188@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Re: YAPE & the IFFParse.library

>  Well, the IFFParse.library is used to to the IFF/FTXT copies to the 2.0+
>clipboard. The reason I started to write YAPE was because my normal
>editor(TxEd+) does not support the clipboard device properly.

   Ahhhh...the clipboard! For a minute I thought you were going to put in IFF
pics in a text ed....:-)

>yes debugging is my most hated chore. It's been slowing me up for some time.

    I just got over two hurdles, and ran into another! Broke my nose! Ouch!

>   Well, most of your needs will be filled by version 1.0. the editor can
>be configured for any screen/xy size/zoom size/etc. There will be user
>configurable menus in the next version(through an AREXX port). I'm
>planning on getting the AREXX port installed as teh only objective of the
>second version.  With AREXX you could define a menu iten in place of the
>button, then implement an automatic insert at the next mouse click.
>
>Should be doable. can't promise anything untill I finally get the editor
>working, but tentatively yes, I'm interested!

    Wouldn't be interested in letting us use the source and hard code the
editor into the proggy? I really don't want to write my own...and ARexx is
nice but limited when you compare it with real E functions.  BUT, whatever
info you have on ARexx, I have a friend who needs it VERY badly  (or will
soon).

>> *-- Forget the Prime Directive - Let's kill something.
>       ^
>       | heh. kewl!

    GammaTag was going to be my first E program....still have about 6 or 7
versions which do nothing but open up a screen/window and exit....:-(

 / / /
/_/_/iZ

MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC


*-- GammaTag Version 2.8 --*
*-- Hello, I am part number 3: :3:3 3: 3: 33

From crash!cup.portal.com!Politikill Fri, 30 Jul 93 13:56:33 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 30 Jul 93 13:56:33 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLzoB-0000Z6C; Fri, 30 Jul 93 12:08 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.386) 
	id AA22646; Fri, 30 Jul 93 12:11:59 -0700
Received: from hobo  by portal.unix.portal.com (1.689) 
	id AA29900; Fri, 30 Jul 93 12:11:58 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA23358; Fri, 30 Jul 93 12:11:56 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 44
Date: Fri, 30 Jul 93 12:11:55 PDT
Message-Id: <9307301211.3.12188@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Re: MidStr

>Check that you have got the parameters to InStr the right
>way round - all languages order these things differently
>and I can never remember which way round they go.
>
>Next insert a WriteF('\d\n',endpos) after the endpos
>assignment. If there is no \n in the buffer, endpos-pos
>will be a negative number and could cause MidStr to return
>all the characters it finds.
>
>Also check that the parameters to MidStr are right. I once
>got the parameters to StrCpy the wrong way round - I
>thought it would be (source,dest) but it isn't. Took me
>the best part of a day to figure that bug out.
>
>Some E string functions require you to use E strings -
>i.e. declare them as s[80]:STRING or something like that.
>I would guess that this is the most likely problem.
>Remember that if you do DEF a,b:STRING then a is a LONG
>and b is a STRING. A similar statement in Pascal would
>make both variables strings - that's a feature of E which
>has caught me out many a time.
>
>Hope this helps :-)
>
>Dave.


    Thanx....I di finally get this about 10 minutes after the mail went out:-)
I stared REAL hard at it, and finally said "Well, if StringF needs it, might
as well try definging them as strings for MidStr()..."   Now I am having
problems somewhere in my saving routines....gotta go stare at that now!

 / / /
/_/_/iZ

MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC


*-- GammaTag Version 2.8 --*
*-- Morality is a private and costly luxury.

From crash!cup.portal.com!Politikill Fri, 30 Jul 93 13:56:36 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 30 Jul 93 13:56:36 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oLzoW-0000auC; Fri, 30 Jul 93 12:08 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.386) 
	id AA22660; Fri, 30 Jul 93 12:12:20 -0700
Received: from hobo  by portal.unix.portal.com (1.689) 
	id AA29910; Fri, 30 Jul 93 12:12:19 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA23438; Fri, 30 Jul 93 12:12:17 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 69
Date: Fri, 30 Jul 93 12:12:16 PDT
Message-Id: <9307301212.2.12188@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Re: MidStr

>Hi, Jeffrey.  In response to your message:
>
>>    I can't get MidStr() to work right.  It is reading it from the starting
>>point right, but I can't get it to stop! I am trying to get a version string
>>pulled out of a buffer I am getting from Read(). Before vtst was defined as a
>>string, it was working somewhat well (I was getting what I wanted), but I am
>>not sure whether it was stoping where I wanted. What I need is the original
>>version string, with the revision number bumped up by one.
>
>=======================================================================
>
>PROC findver(pos) /* pos is found in the prior proc */
>  DEF endpos,
>      vers,
>      per,
>      vn,
>      vp,
>      vns,
>      nvers,
>      rvers,
>      vtst[80]:STRING
>
>  endpos:=InStr(filbuf,'\n',pos) /* finding then end of the line */
>******************************************************************************
*
>*** Your problem starts here.  vers is uninitialized, so it contains a value
>*** that looks like an address.  MidStr() copies characters to the nonexistent
>*** string at "address" vers.  You need to declare these as STRING or allocate
>*** the using String().   Basically, this is copying characters into random
>*** memory locations, a very effective way to corrupt your memory :(  I notice
d
>*** this happening in several places in the code that follows this statement.

    I finally did this....now that routine, and the rest of my loading
sequence, are working well....I think I may have something in my saving
routine killing stuff now, so I have to go look there. 

>  MidStr(vers,filbuf,pos,endpos-pos)
>
>[statements removed]
>
>*** StringF() still might work under lucky circumstances.
>  StringF(vtst,'\s \d.\d',nvers,vp,rvers)

    The problem was that it would only crash on the second load, most of the
time, so I thought I was not deallocating memory....other occurrences of
StringF not having things defined as string...any exterminators for hire here?

>*** As for your run-on problem, it may be a symptom of this.  If it persists
>*** then post, post again!  :-)

Got this fixed....realised it ten minutes after the message went out!

>
>Later.
>-- Barry

 / / /
/_/_/iZ

MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC


*-- GammaTag Version 2.8 --*
*-- Mister!  Here's your mule! 

From crash!genie.geis.com!g.beasley2 Fri, 30 Jul 93 15:51:06 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 30 Jul 93 15:51:06 PST
Received: from relay2.geis.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oM1Vc-0000klC; Fri, 30 Jul 93 13:57 PDT
Received: by relay2.geis.com
	(1.37.109.4/15.6) id AA23546; Fri, 30 Jul 93 21:56:55 +0100
Message-Id: <9307302056.AA23546@relay2.geis.com>
Date: Fri, 30 Jul 93 21:49:00 BST
X-Genie-Id: 2741723
X-Genie-From: G.BEASLEY2
From: g.beasley2@genie.geis.com
To: amigae@bkhouse.cts.com
Subject: Wishlist

Reply:  Item #6419070 from D.HIGGINSON@AXION.BT.CO.UK@INET#
 
> * Don't know if there's a reason for this, but some E
>   module object names appear to be different, e.g. mp
>   instead of msgport, sigbit instead of mp_sigbit
 
I may be wrong about this, but I believe that Wouter used C='s
assembly (.i) includes to generate the Modules.  I am pretty sure
that if you compare the .m files to C='s .i files, you will see that
the names match up.
 
This would make sense since we have a utility to convert .i files to
.m files.
 
George...
 
 

From crash!delphi.com!NES Fri, 30 Jul 93 17:54:10 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 30 Jul 93 17:54:10 PST
Received: from bos1a.delphi.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oM4hU-0000XLC; Fri, 30 Jul 93 17:21 PDT
Received: from delphi.com by delphi.com (PMDF V4.2-11 #4520) id
 <01H15ZS0DXN48Y5KAW@delphi.com>; Fri, 30 Jul 1993 20:20:48 EDT
Date: Fri, 30 Jul 1993 20:20:48 -0400 (EDT)
Message-id: <01H15ZS0HF1E8Y5KAW@delphi.com>
X-VMS-To: IN%"AmigaE@bkhouse.cts.com"
MIME-version: 1.0
Content-type: TEXT/PLAIN; CHARSET=US-ASCII
Content-transfer-encoding: 7BIT
From: NES@delphi.com
To: AmigaE@bkhouse.cts.com
Subject: New version of E...

I have V1.2b of the Amiga E compiler.  Is there a new version out.
and were can I get it?  Or you can mail it to me uuecoded.  I have a 
large mail space.... 
  Eric
  "NES@delphi.com"

From crash!mars.let.uva.nl!wouter Fri, 30 Jul 93 21:43:54 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 30 Jul 93 21:43:54 PST
Received: from mars.let.uva.nl by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oM7KT-0000EEC; Fri, 30 Jul 93 20:09 PDT
Received: by mars.let.uva.nl id AA14651
  (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Sat, 31 Jul 1993 05:13:42 +0200
Return-Path: <wouter@mars.let.uva.nl>
Date: Sat, 31 Jul 1993 05:13:42 +0200
Message-Id: <199307310313.AA14651@mars.let.uva.nl>
X-Organisation: Department of Computational Linguistics,
                University of Amsterdam
                Spuistraat 134, 1012 VB Amsterdam, The Netherlands
From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
To: amigae@bkhouse.cts.com
Subject: wishes, objects, and modules

>> Here's my list of things I would like to have when I'm
>> programming in E:
>> 
>> MAJOR
>> 
>> * Object Oriented support (already planned anyway, I think)
 
with v2.5, you'll have object inheritance, with more on the way.
 
>> * Ability to break code into units like Pascal
 
is in v2.5. the system resembles very closely the "units" of turbopascal.
 
>> * Ability to include files for graphics/sound at the
>>   command line
 
um, you mean the chip thing you're all screaming for?
I'll _think_ about it :-)
 
>> * Proper object support, so I can use
>>   window.userport.sigbit
 
E's concept for OBJECTs is simply different from how most people
are used to program. I've indeed seen that this can be somewhat
of a nuisance, and I'd like to provide better, but it isn't
going to be simple (imagine, it also involves also ALL modules to
be radically rewritten, for a start.).
 
>> MINOR
>> 
>> * Some way of specifying more than one variable of a given
>>   type, e.g. instead of A:INT,B:INT,C:INT use A;B;C:INT
 
don't count on it.
 
>> * Some way of saving register values for programming hooks
 
v2.5 provides an installhook() function that does all the dirty
work for you.
 
>> * Don't know if there's a reason for this, but some E
>>   module object names appear to be different, e.g. mp
>>   instead of msgport, sigbit instead of mp_sigbit
 
they're different because commodore made the C and Assembly
names different, and E uses the Assembly ones. Commodore
also prefixed the names in assembly (and later some in C too),
because in assembly such a label has no type, but in E this
is superfluous, since the pointer that it is used with, has a type.
simply remember, if a name in Asm or C has a prefix, it won't have
one in E.
 
>> Remember, these are just suggestions
>> 
>> Dave.
 
--
 
>> I agree, E will have a better reputation in the Amiga community
>> if it is 100% standardized with C='s includes...
>> 
>> Alan
 
remember that E's includes already resemble those of C and Asm
quite closely (have you ever seen the names (and the directory structure)
of the includes that come with some modula2 and Oberon compilers?).
 
--
 
>> > * Object Oriented support (already planned anyway, I think)
>> 
>> > * Proper object support, so I can use
>> >   window.userport.sigbit
>> 
>> Object-orientedness was in from the first release, its just not
>> working right yet (right, Wouter?).
 
indeed. the E language has been OO just about from the beginning
(2 years ago), but my compiler-writing skills advanced slower than my
language designing skills :-)
 
>> I definately want to see proper object support like above.
 
me too.
 
>> But lets not forget to thank Wouter for a wonderful language!
 
you will be enjoying it even more now more of it gets implemented.
 
>>    Chad Freeman
 
--
 
>> I mentioned the "mp" case specifically because it caused
>> me problems. Now I know about it, I can avoid that problem
>> in the future, but how many other differences are there?
 
in Assembly, it's also called "mp" (or "MP", to be precise).
When looking through includes, take the assembly ones instead
of the C ones, which will be the same as the E ones (strip
off the prefix).
 
--
 
>> Once you become accustomed to the modules' naming conventions it's not difficult
>> 
>> to use the RKRMs to locate components in the modules.  What about all the code
>> already written against E's current modules?  I myself would not look forward to
>> converting a project the size of my EPP program (or larger!) if Wouter changes
>> the existing component names. 
 
I won't, for that reason.
 
>> Anyway, I think mp_sigbit is redundant since the
>> component belongs to an mp object.  I'm convinced Commodore set that convention
>> because of C programmers' infamous tendency to use such descriptive variable
>> names as "a" and "x".  :-)
 
:-)
 
-- Barry
 
 
Wouter
 
   ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
 / __/    wenn er wahr ist" - Wittgenstein
/___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-

From crash!cup.portal.com!Politikill Fri, 30 Jul 93 21:43:58 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 30 Jul 93 21:43:58 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oM7OR-0000ZYC; Fri, 30 Jul 93 20:13 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.386) 
	id AA11788; Fri, 30 Jul 93 20:17:56 -0700
Received: from hobo  by portal.unix.portal.com (1.691) 
	id AA15230; Fri, 30 Jul 93 20:17:54 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA20560; Fri, 30 Jul 93 20:17:52 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 31
Date: Fri, 30 Jul 93 20:17:51 PDT
Message-Id: <9307302017.3.11028@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Re:  MidStr

>hello,
>why not try this instead of MidStr()
>DEF string[80]:STRING
>DEF i
>DEF t
>FOR t:=startpos TO endpos
>        INC i
>        string[i]:=originalstring[t]
>ENDFOR
>SetStr(string,i)
>
>vinny


    Hi!, I suppose I could, but I do have the MidStr functions working right,
at the moment anyways. I even had the program doing EVERYTHING I wanted, but
somehow I changed something, can't remember what it was, and it now crashes
loading in one file, never mind two! I'm gonna give it a week to sit and
fester......thanx anyway!

 / / /
/_/_/iZ

MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC

*-- GammaTag Version 2.8 --*
*-- He is not only dull within, but causes dullness without.

From crash!cup.portal.com!Politikill Fri, 30 Jul 93 21:44:00 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Fri, 30 Jul 93 21:44:00 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oM7Oe-00002CC; Fri, 30 Jul 93 20:14 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.386) 
	id AA11796; Fri, 30 Jul 93 20:18:08 -0700
Received: from hobo  by portal.unix.portal.com (1.691) 
	id AA15236; Fri, 30 Jul 93 20:18:07 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA20608; Fri, 30 Jul 93 20:18:06 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 46
Date: Fri, 30 Jul 93 20:18:05 PDT
Message-Id: <9307302018.1.11028@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Re: Naming conventions

>
>Sorry I couldn't include the original message, but my
>mail-reader won't let me.
>
>I wouldn't be half as bad using the E object names if I
>had documentation on them. However, the only documentation
>I really use while programming are the RKRMs, which have
>all their examples in C, using the proper include names.
>
>I mentioned the "mp" case specifically because it caused
>me problems. Now I know about it, I can avoid that problem
>in the future, but how many other differences are there?
>
>Commodore's convention of putting two characters, then
>underscore, then the rest of the name is perfect for E
>because of the way that E checks the first 2 characters to
>work out what sort of identifier it is.
>
>Dave.
>
>
>P.S. Why does E insist on opening all the libraries -
>Exec, Intuition, DOS, Graphics and Maths, even if you
>don't use them all?

    It ain't broke, so _DON'T_ fix it!!!!!!!!!
    If everything were STANDARDIZED, then E would not be E, it would be C!
    Dare 2 B Different!
    Ask not what E can do for you; Ask what you can do for E!
    ....The pursuit of LIFE, LIBERTY, and BUGS....
    And in conclusion, Eat my shorts!

Thankyu, thankyu, thankyu vewy much.....

 / / /
/_/_/iZ

MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC


*-- GammaTag Version 2.8 --*
*-- "Scotty, beam me aboard!" "Aye, sir! A 2x4, or a 4x8?"

From crash!cislabs.pitt.edu!cjfst4 Sat, 31 Jul 93 17:43:49 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sat, 31 Jul 93 17:43:49 PST
Received: from phantom.cislabs.pitt.edu by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oMQje-0000fNC; Sat, 31 Jul 93 16:53 PDT
Received: from meg.cislabs.pitt.edu by phantom.cislabs.pitt.edu (4.1/1.34)
	id AA18505; Sat, 31 Jul 93 19:53:01 EDT
Received: by meg.cislabs.pitt.edu (4.1/EMI-2.1)
	id AA11242; Sat, 31 Jul 93 19:52:58 EDT
Message-Id: <9307312352.AA11242@meg.cislabs.pitt.edu>
Date: Sat, 31 Jul 1993 19:52:58 -0400 (EDT)
X-Mailer: ELM [version 2.4 PL21]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1936
From: cjfst4@cislabs.pitt.edu
To: amigae@bkhouse.cts.com (Amiga-E List)
Subject: Things I'm working on...

Well, since everyone else is sharing what they're working on, so will
I, but I must warn you, its pretty boring.

First off, there's Remind, a simple reminder program.  Features
include opening its own screen and a gui (two listviews and some
buttons).  The best thing about it is its small (hopefully less than
20K).  Currently in alpha stage, but it should have a short cycle :-).
Its my first largish E program, so its not much.

Second, I'm working on a set of proper include files for E.  No more
looking up endless cross-references for those dozen different includes
that each have only _one_ flag you need (yay!)!.  Its easily done
through EPP, as soon as the right files are made up.  All you will
need to do is...

PMODULE 'devices/conunit'

and it will include everything the normal C conunit.h file does.  This
is something _I've_ sorely wanted, anyway.

I am also in the consideration stage for EFRONT, which is YAEP (Yet
Another E PreProcessor).  This one, however, will be more of a
language-extending preprocessor, implementing proper structure support
(ie you'll be able to write struct.substruct.even.more.stuff and
actually have it mean something!), multi-dimensional arrays, and
anything else neat I or someone else thinks of to put in.  Again this
is merely in the consideration stage; I'm not sure it could even be
pulled off (well, by me, anyway).

Feel free to include any of this information in the E Projects List.
If you need more info, let me know (sorry, I did not keep the message
describing the format around).

Chad
---
   Chad Freeman, inet: cjfst4+@pitt.edu, bnet: cjfst4@pittvms, BIX: cfreeman
    Read Amiga Report, its the best on-line magazine around (+ I'm in it!)
 ------------------------------------------------------------------------------
   Wealth is lent us, friends are lent us, man is lent, kin is lent; all
   this earth's frame shall stand empty.                          -The Wanderer

From crash!cup.portal.com!Politikill Sat, 31 Jul 93 21:44:36 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sat, 31 Jul 93 21:44:36 PST
Received: from nova.unix.portal.com by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oMTx2-0000KhC; Sat, 31 Jul 93 20:19 PDT
Received: by nova.unix.portal.com (5.65b/4.1 1.386) 
	id AA04196; Sat, 31 Jul 93 20:23:08 -0700
Received: from hobo  by portal.unix.portal.com (1.691) 
	id AA07501; Sat, 31 Jul 93 20:23:06 -0700
Received: by hobo.corp.portal.com (4.1/4.0.3 1.68) 
	id AA01692; Sat, 31 Jul 93 20:23:05 PDT
Return-Path: <Politikill@cup.portal.com>
Lines: 79
Date: Sat, 31 Jul 93 20:23:04 PDT
Message-Id: <9307312023.1.26243@cup.portal.com>
X-Origin: The Portal System (TM)
From: Politikill@cup.portal.com
To: AmigaE@bkhouse.cts.com
Subject: Re: Things I'm working on...

>Well, since everyone else is sharing what they're working on, so will
>I, but I must warn you, its pretty boring.

    Nothing in E is "boring" !!!!!!!

>First off, there's Remind, a simple reminder program.  Features
>include opening its own screen and a gui (two listviews and some
>buttons).  The best thing about it is its small (hopefully less than
>20K).  Currently in alpha stage, but it should have a short cycle :-).
>Its my first largish E program, so its not much.

    Sounds KeWl! F U nd a b8a tstr, lt me no, & I wl do it 4 U :-) 

    need2know: semi-accurate release date (e.g. 2 weeks/1 month/2/3/1 year

>Second, I'm working on a set of proper include files for E.  No more
>looking up endless cross-references for those dozen different includes
>that each have only _one_ flag you need (yay!)!.  Its easily done
>through EPP, as soon as the right files are made up.  All you will
>need to do is...
>
>PMODULE 'devices/conunit'
>
>and it will include everything the normal C conunit.h file does.  This
>is something _I've_ sorely wanted, anyway.

    What?! You mean to tell me that you don't include EVERY module?! Are you
insane? You must be one of those memory conservatonist freaks! "Oh, if we
don't stop taking away all the memory, there won't be any left for our
kids...."  :-)   (Don't mind me, I'm really not this abnormal in
person...comedy looks better in type :-)

    So not really a program, but more PMods? I don't come from a C background,
as ARexx was my bigest endeavor before E, but I think I know what you mean...

>I am also in the consideration stage for EFRONT, which is YAEP (Yet
>Another E PreProcessor).  This one, however, will be more of a
>language-extending preprocessor, implementing proper structure support
>(ie you'll be able to write struct.substruct.even.more.stuff and
>actually have it mean something!), multi-dimensional arrays, and
>anything else neat I or someone else thinks of to put in.  Again this
>is merely in the consideration stage; I'm not sure it could even be
>pulled off (well, by me, anyway).

    Ok...this sounds interesting and comlex, but rather than starting from
scratch, you could maybe sortof work in some sort of symbiosis w/ Barry
Wills.....

>Feel free to include any of this information in the E Projects List.
>If you need more info, let me know (sorry, I did not keep the message
>describing the format around).

    I'll probly get it ihn the next release of the list.....(vacation
calls...I didn't find out about it till 2 days ago!) which I will hopefully
get widespread (sent out the first release on FIDO today)

>Chad
>---
>   Chad Freeman, inet: cjfst4+@pitt.edu, bnet: cjfst4@pittvms, BIX: cfreeman
>    Read Amiga Report, its the best on-line magazine around (+ I'm in it!)
> -----------------------------------------------------------------------------
-
>   Wealth is lent us, friends are lent us, man is lent, kin is lent; all
>   this earth's frame shall stand empty.                          -The Wandere
r
>

 / / /
/_/_/iZ

MODULE 'WiZkId'
PROC main()
  wizkid.inetaddress:='Politkill@cup.portal.com'
  wizkid.realname:='Jeffrey J Peden ]['
ENDPROC


*-- GammaTag Version 2.8 --*
*-- *-- Buy an A4000/040/25; you can reboot faster!

From crash!cislabs.pitt.edu!cjfst4 Sat, 31 Jul 93 21:44:39 PST
Received: by bkhouse.cts.com (V1.16/Amiga)
	id AA00000; Sat, 31 Jul 93 21:44:39 PST
Received: from phantom.cislabs.pitt.edu by crash.cts.com with smtp
	(Smail3.1.28.1 #15) id m0oMU7d-0000PKC; Sat, 31 Jul 93 20:30 PDT
Received: from meg.cislabs.pitt.edu by phantom.cislabs.pitt.edu (4.1/1.34)
	id AA24149; Sat, 31 Jul 93 23:30:04 EDT
Received: by meg.cislabs.pitt.edu (4.1/EMI-2.1)
	id AA11419; Sat, 31 Jul 93 23:30:02 EDT
Message-Id: <9308010330.AA11419@meg.cislabs.pitt.edu>
Date: Sat, 31 Jul 1993 23:30:01 -0400 (EDT)
X-Mailer: ELM [version 2.4 PL21]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 26759
From: cjfst4@cislabs.pitt.edu
To: amigae@bkhouse.cts.com (Amiga-E List)
Subject: Here it is: The E HEADER System...

Remember those header files that work like C include files?  Well,
I've finished them, so here it is...

WHAT THEY ARE...EPP files (so you need EPP) that act like the standard
Amiga C include files: i.e., if an include needs another include for
some of its constant definitions or structure definitions, it will
bring that other file in automagically. Once EHS is installed, it
completely supercedes the MODULE statement in your pre-EPP files.

HOW TO USE THEM...Get EPP if you don't have it, unarc the files, and
read EHS.readme.  Please be sure to activate your archiver with
pathnames so they unarc correctly.

Thanks in advance for any comments, suggestions, bug reports, etc.!

BTW, I will be sending this to AmiNet soon, if you can't uudecode this
file.


----8<----8<----

begin 644 EHS.lzh
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
M,"T2    $@   %>N_QH@ !)H96%D97)S7&=A9'1O;VQS+F4D$DU/1%5,12 G
M9V%D=&]O;',G"B,)+6QH,"T-    #0   %VN_QH@  UH96%D97)S7&=T>"YE
M&0E-3T153$4@)V=T>"<*) TM;&@P+0X    .    9*[_&B  #FAE861E<G-<
M:6-O;BYE]-)-3T153$4@)VEC;VXG"BB=+6QH,"T2    $@   &FN_QH@ !)H
M96%D97)S7&EF9G!A<G-E+F6L\DU/1%5,12 G:69F<&%R<V4G"B4"+6QH,"T/
M    #P   &^N_QH@  ]H96%D97)S7&EN<'5T+F4L^DU/1%5,12 G:6YP=70G
M"B;8+6QH,"T0    $    '6N_QH@ !!H96%D97)S7&ME>6UA<"YER-1-3T15
M3$4@)VME>6UA<"<*)MHM;&@P+1     0    >J[_&B  $&AE861E<G-<;&%Y
M97)S+F79MTU/1%5,12 G;&%Y97)S)PHMLRUL:# M&0   !D   "'KO\:(  7
M:&5A9&5R<UQM871H:65E961O=6)B87/1<TU/1%5,12 G;6%T:&EE965D;W5B
M8F%S)PHQVBUL:# M&P   !L    MM/\:(  ;:&5A9&5R<UQM871H:65E961O
M=6)T<F%N<RYEC*9-3T153$4@)VUA=&AI965E9&]U8G1R86YS)PHP,2UL:# M
M&0   !D    SM/\:(  ::&5A9&5R<UQM871H:65E97-I;F=B87-E+F41_4U/
M1%5,12 G;6%T:&EE965S:6YG8F%S)PHQV2UL:# M&P   !L    YM/\:(  ;
M:&5A9&5R<UQM871H:65E97-I;F=T<F%N<RYE7,)-3T153$4@)VUA=&AI965E
M<VEN9W1R86YS)PHI_RUL:# M$P   !,   !"M/\:(  3:&5A9&5R<UQM871H
M=')A;G,N9:#\34]$54Q%("=M871H=')A;G,G"B;2+6QH,"T0    $    $BT
M_QH@ !!H96%D97)S7&YO9G)A9RYEA4)-3T153$4@)VYO9G)A9R<**.LM;&@P
M+1(    2    3[3_&B  $FAE861E<G-<<F%M9')I=F4N98EM34]$54Q%("=R
M86UD<FEV92<*(X\M;&@P+0T    -    5;3_&B  #6AE861E<G-<<F5Q+F7!
M]$U/1%5,12 G<F5Q)PHH22UL:# M$@   !(   !:M/\:(  2:&5A9&5R<UQR
M97%T;V]L<RYEQF1-3T153$4@)W)E<71O;VQS)PHJGRUL:# M%    !0   !C
MM/\:(  4:&5A9&5R<UQR97AX<WES;&EB+F4[4DU/1%5,12 G<F5X>'-Y<VQI
M8B<*)4,M;&@P+0\    /    :+3_&B  #VAE861E<G-<=&EM97(N9>B/34]$
M54Q%("=T:6UE<B<**OTM;&@P+10    4    ;;3_&B  %&AE861E<G-<=')A
M;G-L871O<BYE+,A-3T153$4@)W1R86YS;&%T;W(G"B?[+6QH,"T1    $0  
M '2T_QH@ !%H96%D97)S7'5T:6QI='DN99B234]$54Q%("=U=&EL:71Y)PHB
MQBUL:# M#     P   !XM/\:(  ,:&5A9&5R<UQW8BYE"S!-3T153$4@)W=B
M)PHMN"UL:#$M+@   #0   #3F?X:(  7:&5A9&5R<UQD979I8V5S7&%U9&EO
M+F7.4NYV>WT/#V.CK-G?]2[S<*[WN_QOB"6OOW?U_=[EJF1#7PK 5C9UO_9>
MT!JXX+@Q/RUL:#$M-P   #H   #=F?X:(  ;:&5A9&5R<UQD979I8V5S7&)O
M;W1B;&]C:RYE\NON=GM]#P]CHZS9W_4N\W"N][O\;X@EK[]V  O\K?^]RU'(
MAWX5P+ZV<U99>[]RMC3?B3-^\F4 ,>4M;&@Q+4H   "5    (YK^&B  &VAE
M861E<G-<9&5V:6-E<UQC;&EP8F]A<F0N91?&[G9[?0\/8Z.LV=_U+O-PKO>[
M_&^():^_=@ +_*W_O<M= [^OW\,('?Q]:RQM8[K:C_1H=JXTMZ>N!4EG%/LH
M=+&F>Z/[:*12 V O4RUL:#$M.P   %0    WFOX:(  9:&5A9&5R<UQD979I
M8V5S7&-O;G-O;&4N94O[[G9[?0\/8Z.LV=_U+O-PKO>[_&^():^_=@ +_*W_
MO<M= []?W2JY\B./A7 JFSFK+*74?J5(_$MT#( OQRUL:#$M6    ,(   !V
MFOX:(  9:&5A9&5R<UQD979I8V5S7&-O;G5N:70N97=L[G9[?0\/8Z.LV=_U
M+O-PKO>[_&^():^_=@ +_*W_O<M= [6_O_6-V#OPK@7ULY:RREU/ZE2/Q-6Q
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
M<V)O>%QF;W)M<RYE??]-3T153$4@)V=A9'1O;VQS8F]X+V9O<FUS)PHSIRUL
M:# M'0   !T   "LM/\:(  =:&5A9&5R<UQG861T;V]L<V)O>%QG='AB87-E
M+F6%&4U/1%5,12 G9V%D=&]O;'-B;W@O9W1X8F%S92<*+] M;&@P+1D    9
M    L;3_&B  &6AE861E<G-<9V%D=&]O;'-B;WA<9W5I+F4T0TU/1%5,12 G
M9V%D=&]O;'-B;W@O9W5I)PHRBRUL:# M'    !P   "WM/\:(  <:&5A9&5R
M<UQG861T;V]L<V)O>%QH;W1K97DN9<X&34]$54Q%("=G861T;V]L<V)O>"]H
M;W1K97DG"C%9+6QH,"T;    &P   +VT_QH@ !MH96%D97)S7&=A9'1O;VQS
M8F]X7'!R969S+F5_E$U/1%5,12 G9V%D=&]O;'-B;W@O<')E9G,G"C62+6QH
M,"T?    'P   ,:T_QH@ !]H96%D97)S7&=A9'1O;VQS8F]X7'1E>'1C;&%S
M<RYEH]E-3T153$4@)V=A9'1O;VQS8F]X+W1E>'1C;&%S<R<*+1HM;&@Q+5< 
M  ";    X9[_&B  %VAE861E<G-<9W)A<&AI8W-<8VQI<"YE&L#N=GM]#P]C
MHZS9W_4N\W"N][O\;X@EK[]V  O\K?^]RTV'?G_O;6_3ZV=995/RM+.'[L/9
MM?\W02_NHO9! -C2_A_$L(=-.P/O/%'5X407XFH\U,BO@N M0BUL:#$M60  
M )T   #7GO\:(  7:&5A9&5R<UQG<F%P:&EC<UQC;&EP+FC>)^YV>WT/#V.C
MK-G?]2[S<*[WN_QOB"6OOW8 "_RM_[W+38=^?^]M;]/K9UEE4_*TLX?NP]FU
M_S=!+^ZB]D$ V-+^'\2PATT[ ^\\4=7A1!?B:CS4R+NH+X,@,$\M;&@P+1P 
M   <    [)[_&B  &FAE861E<G-<9W)A<&AI8W-<8V]L;&ED92YE8R4*34]$
M54Q%("=G<F%P:&EC<R]C;VQL:61E)PH*+]$M;&@Q+34    Y    _)[_&B  
M&6AE861E<G-<9W)A<&AI8W-<8V]P<&5R+F6@=^YV>WT/#V.CK-G?]2[S<*[W
MN_QOB"6OOW8 "_RM_[W+4<B'?G_O;6_3ZV=993?W/H5ZB@!D,,0M;&@P+1P 
M   <    "9__&B  &FAE861E<G-<9W)A<&AI8W-<9&ES<&QA>2YEKA<*34]$
M54Q%("=G<F%P:&EC<R]D:7-P;&%Y)PH*-(PM;&@Q+5P   "E    *9__&B  
M'FAE861E<G-<9W)A<&AI8W-<9&ES<&QA>6EN9F\N9<HI[G9[?0\/8Z.LV=_U
M+O-PKO>[_&^():^_=@ +_*W_O<M-AWY_[VUOT^MG6653\K2_!_\_O]4MC0U%
MG$8#&C_B;.L)CU/+=@KT4.K=8417XG?@\U>2+Y_#04CZQ!XMR"UL:#$M,P  
M #<    WG_\:(  7:&5A9&5R<UQG<F%P:&EC<UQG96QS+F5<6NYV>WT/#V.C
MK-G?]2[S<*[WN_QOB"6OOW8 "_RM_[W+4<B'?G_O;6_3ZV=995-?\5T+@"RW
M+6QH,2TS    -@   $F?_QH@ !9H96%D97)S7&=R87!H:6-S7&=F>"YESRSN
M=GM]#P]CHZS9W_4N\W"N][O\;X@EK[]V  O\K?^]RU'(AWY_[VUOT^MG6653
M\K2Z!8 P]"UL:#$M2P   '\   !;G_\:(  ::&5A9&5R<UQG<F%P:&EC<UQG
M9GAB87-E+F5$XNYV>WT/#V.CK-G?]2[S<*[WN_QOB"6OOW?X^O_ *^]RUV#O
MN_WMJK"EA1#._5=4GT0'^44A*VHE%\XZ>?^E*SCV4Y\K2KC37L(&@#( +6QH
M,2U&    80   '.?_QH@ !QH96%D97)S7&=R87!H:6-S7&=F>&UA8W)O<RYE
MD,'N=GM]#P]CHZS9W_4N\W"N][O\;X@EK[]V  O\K?^]RTV'?G_O;6_3ZV=9
M95%/-L:'[EQYM7(JXDL0;J?E:?F+%GT%2(&8,?LM;&@Q+3,    [    ":#_
M&B  &VAE861E<G-<9W)A<&AI8W-<9V9X;F]D97,N97[=[G9[?0\/8Z.LV=_U
M+O-PKO>[_&^():^_=_K]_"M_[W+4<B'?G_O;_/I];.LLJGY6E4&P,6XM;&@Q
M+30    [    **#_&B  &VAE861E<G-<9W)A<&AI8W-<9W)A<&AI;G0N9<KE
M[G9[?0\/8Z.LV=_U+O-PKO>[_&^():^_=_K]_"M_[W+4<B'?G_O;_/I];.LL
MH\$6(!&!L"_V+6QH,2U!    7    $&@_QH@ !EH96%D97)S7&=R87!H:6-S
M7&QA>65R<RYE-HGN=GM]#P]CHZS9W_4N\W"N][O\;X@EK[]W^/K_P"OO<M= 
M[4I?GV_SZ?O_5(P15MU$7SHJ$)V%G5LK&F!8)=C#(#"!+6QH,2U)    A   
M &>@_QH@ !IH96%D97)S7&=R87!H:6-S7&UO;FET;W(N92Y-[G9[?0\/8Z.L
MV=_U+O-PKO>[_&^():^_=_^Q^?;_/I^_]8K[W+7<1?.IC Y];.=94WRM/U5?
M"SB2=41JJ0EH'==(H*0 EQZ4-#%W+6QH,2U     6P   ("@_QH@ !MH96%D
M97)S7&=R87!H:6-S7')A<W1P;W)T+F7N).YV>WT/#V.CK-G?]2[S<*[WN_QO
MB"6OOW8 "_RM_[W+38=^?^]M;]/K9UEE4_*TGU<>-#]6"U13S;&3^X\6G!LP
M3BUL:#$M0    %H   ":H/\:(  ::&5A9&5R<UQG<F%P:&EC<UQR96=I;VYS
M+F57 NYV>WT/#V.CK-G?]2[S<*[WN_QOB"6OOW8 "_RM_[W+38=^?^]M;]/K
M9UEE4_*TGU<>-#]6"U17ETO[_5*'5  N_RUL:#$M-    #@   "HH/\:(  8
M:&5A9&5R<UQG<F%P:&EC<UQS8V%L92YEK&_N=GM]#P]CHZS9W_4N\W"N][O\
M;X@EK[]V  O\K?^]RU'(AWY_[VUOT^MG664R;3_BO7 P+_DM;&@Q+34    Y
M    LJ#_&B  &6AE861E<G-<9W)A<&AI8W-<<W!R:71E+F7TA>YV>WT/#V.C
MK-G?]2[S<*[WN_QOB"6OOW8 "_RM_[W+4<B'?G_O;6_3ZV=993)]1.V->Z!D
M+0<M;&@Q+4T   !Z    RJ#_&B  %VAE861E<G-<9W)A<&AI8W-<=&5X="YE
MXP?N=GM]#P]CHZS9W_4N\W"N][O\;X@EK[]W_/W_@#_WN6FP[\Z_VV/T^MG6
MV55\K2_A\!KJ?\1HX++H5,JC!'_,NL@7L16@<PS(,=."X#5!+6QH,2U-    
M8@   -R@_QH@ !]H96%D97)S7&=R87!H:6-S7'9I9&5O8V]N=')O;"YE>E7N
M=GM]#P]CHZS9W_4N\W"N][O\;X@EK[]V  O\K?^]RTV'0&Q^OXJ*-A94_;\Y
M\E?\S*N+31%0_ZDK?I1LZR0!/_![]PY3]1S3REP@?"VN+6QH,2UB    Y@  
M  NA_QH@ !=H96%D97)S7&=R87!H:6-S7'9I97<N94F/[G9[?0\/8Z.LV=_U
M+O-PKO>[_&^():^_=@ +_*W_O<M-AWY_[VUOT^MG6653\K2_!^=^X\^O4?4@
MOU0?#Y%/^8TY2V,R]$134\B; W\IZ-1 8L%R7?U:^HB*_#T";/1] "XP)"UL
M:# M'    !P    AH?\:(  ::&5A9&5R<UQH87)D=V%R95QA9&MB:71S+F4H
M^@I-3T153$4@)VAA<F1W87)E+V%D:V)I=',G"@HMURUL:# M&0   !D    I
MH?\:(  7:&5A9&5R<UQH87)D=V%R95QB;&ET+F71/ I-3T153$4@)VAA<F1W
M87)E+V)L:70G"@HPT2UL:#$M1P   &$   !FH?\:(  ::&5A9&5R<UQH87)D
M=V%R95QC9VAO;VMS+F4KXNYV>WT/#V.CK-G?]2[S<*[WN_QOB"6OOW8 "_RM
M_[W+38=^OZL0&IHS?W464D"9]7)NHF^GM_WP YJ9KRK/YS=$_^\R(&> + @M
M;&@Q+3(    V    -Z'_&B  %FAE861E<G-<:&%R9'=A<F5<8VEA+F5O">YV
M>WT/#V.CK-G?]2[S<*[WN_QOB"6OOW8 "_RM_[W+4<B'?I[?]\ .HIZ]E9_6
M== L+R0M;&@Q+38    Y    0:'_&B  &6AE861E<G-<:&%R9'=A<F5<8W5S
M=&]M+F5LINYV>WT/#V.CK-G?]2[S<*[WN_QOB"6OOW8 "_RM_[W+4<B'?I[?
M]\ .HIZ]E9@-98_O\W0,@###+6QH,"T<    '    $FA_QH@ !IH96%D97)S
M7&AA<F1W87)E7&1M86)I=',N9=+%"DU/1%5,12 G:&%R9'=A<F4O9&UA8FET
M<R<*"C#A+6QH,"T<    '    %.A_QH@ !IH96%D97)S7&AA<F1W87)E7&EN
M=&)I=',N99;\"DU/1%5,12 G:&%R9'=A<F4O:6YT8FET<R<*"C&++6QH,2U#
M    9    (>A_QH@ !MH96%D97)S7&EN='5I=&EO;EQC;&%S<V5S+F7C+NYV
M>WT/#V.CK-G?]2[S<*[WN_Q@$ ^OXL[0%W?T_==]__>Y:;$%3]4K6I3EI3]A
M[[+VUD.=0_TBKC5<AK '/C9B!F RY"UL:#$M.P   #\   "DH?\:(  <:&5A
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
M:&EE965D<"YE7#X*34]$54Q%("=L:6)R87)I97,O;6%T:&EE965D<"<*-)0M
M;&@P+1\    ?    $:3_&B  'FAE861E<G-<;&EB<F%R:65S7&UA=&AI965E
M<W N95F*"DU/1%5,12 G;&EB<F%R:65S+VUA=&AI965E<W G"C6>+6QH,2TT
M    0@   ">D_QH@ !]H96%D97)S7&QI8G)A<FEE<UQM871H;&EB<F%R>2YE
M=:[N=GM]#P]CHZS9W_4N\W"N][O\;X@EK[]W^/K[O][:ZPK?^]RU#(B&2"=E
M^:L ^D>#065/-G@M;&@Q+3P    _    .Z3_&B  (&AE861E<G-<;&EB<F%R
M:65S7&UA=&AR97-O=7)C92YEVI;N=GM]#P]CHZS9W_4N\W"N][O\;X@EK[]W
M^OW\*W_O<M1R(=_'U]W^]M-45ZRR_-* ?2=),L &A9R1Y  T'BUL:# M'P  
M !\   !'I/\:(  >:&5A9&5R<UQL:6)R87)I97-<=')A;G-L871O<BYEIFP*
M34]$54Q%("=L:6)R87)I97,O=')A;G-L871O<B<*,R M;&@P+0H    *    
MF:3_&B  '6AE861E<G-<<F5S;W5R8V5S7&)A='1C;&]C:RYETX\O*B!.24P@
M*B\*,4LM;&@P+0H    *    DZ3_&B  &VAE861E<G-<<F5S;W5R8V5S7&)A
M='1M96TN9=./+RH@3DE,("HO"CH_+6QH,"TE    )0   *ZD_QH@ "1H96%D
M97)S7')E<V]U<F-E<UQB871T;65M8FET<V%M:6=A+F4Y$@I-3T153$4@)W)E
M<V]U<F-E<R]B871T;65M8FET<V%M:6=A)PH[X"UL:# M)@   "8   "ZI/\:
M(  E:&5A9&5R<UQR97-O=7)C97-<8F%T=&UE;6)I='-S:&%R960N96;_"DU/
M1%5,12 G<F5S;W5R8V5S+V)A='1M96UB:71S<VAA<F5D)PHM52UL:# M"P  
M  L   #6I/\:(  7:&5A9&5R<UQR97-O=7)C97-<8VEA+F5.FB\J($Y)3" J
M+PH*,?\M;&@P+0L    +    X:3_&B  &VAE861E<G-<<F5S;W5R8V5S7&-I
M86)A<V4N94Z:+RH@3DE,("HO"@HNZ2UL:#$M4P   +@   #YI/\:(  8:&5A
M9&5R<UQR97-O=7)C97-<9&ES:RYE*KKN=GM]#P]CHZS9W_4N\W"N][O\;X@E
MK[]V  O\K?^]RUT#OX^M98UD.UO[_V$#M1^J%>EE ,ZD$53,]U#VP384P*NI
MF]'!*IIZ2SAE67P=<^\."#0.+6QH,2U(    =@    ^E_QH@ !YH96%D97)S
M7')E<V]U<F-E<UQF:6QE<WES<F5S+F7>O>YV>WT/#V.CK-G?]2[S<*[WN_QO
MB"6OOW?Z_?PK?^]RUT#OX^M8 78.UMA1LHP!T:N3=26_U>E. 9NSCBE?*HJ8
MX@62?"%&@#;\+6QH,2TV    /P   "*E_QH@ "!H96%D97)S7')E<V]U<F-E
M<UQM871H<F5S;W5R8V4N97&#[G9[?0\/8Z.LV=_U+O-PKO>[_&^():^_=_K]
M_"M_[W+4<B'?]7K+ !J;.:A9?GV@'TJ@;(D@+KDM;&@Q+3\   !9    ,*7_
M&B  &&AE861E<G-<<F5S;W5R8V5S7&UI<V,N9:!.[G9[?0\/8Z.LV=_U+O-P
MKO>[_&^():^_=@ +_*W_O<M= [^/K[O][::HC1#5R(_GUZS]@-&SDEV7YE3X
M\>4 +\0M;&@P+1H    :    .*7_&B  &6AE861E<G-<<F5S;W5R8V5S7'!O
M=&=O+F6E,PI-3T153$4@)W)E<V]U<F-E<R]P;W1G;R<**_LM;&@P+18    6
M    4J7_&B  %6AE861E<G-<<F5X>%QE<G)O<G,N9=+/"DU/1%5,12 G<F5X
M>"]E<G)O<G,G"BO#+6QH,2TN    -@   &>E_QH@ !5H96%D97)S7')E>'A<
M<F5X>&EO+F7A..YV>WT/#V.CK-G?]2[S<*[WN_QO]\02QW?_ /W:^WYVE[EJ
MR1#\<%HT-_6OHT KNRUL:#$M,    #8   !SI?\:(  5:&5A9&5R<UQR97AX
M7')X<VQI8BYEC(+N=GM]#P]CHZS9W_4N\W"N][O\;_?$$L=W_P#]VOM^=I>Y
M:LD0_'!:I-L?Q]?=1H L 2UL:#$M3@   +$   "4I?\:(  6:&5A9&5R<UQR
M97AX7'-T;W)A9V4N94WK[G9[?0\/8Z.LV=_U+O-PKO>[_&^():^_=@ +_*W_
MO<M= [^OW\,('?Q]:RQM8[K:C_4P=I:3W47MC2**3M7239GU[1[91I$:"@^;
ML>( ++ M;&@Q+3(    U    K*7_&B  %FAE861E<G-<=71I;&ET>5QD871E
M+F4_,NYV>WT/#V.CK-G?]2[S<*[WN_QOB"6OOW8 "_RM_[W+4<B'0&Q^OXJ*
M%A9?#VTZ]&> +2LM;&@Q+3(    V    N*7_&B  %VAE861E<G-<=71I;&ET
M>5QH;V]K<RYE!5/N=GM]#P]CHZS9W_4N\W"N][O\;X@EK[]V  O\K?^]RU'(
MAT!L?K^*BA867T_<G]XP+B^<+6QH,2TT    .    ,BE_QH@ !EH96%D97)S
M7'5T:6QI='E<=&%G:71E;2YE69/N=GM]#P]CHZS9W_4N\W"N][O\;X@EK[]V
M  O\K?^]RU'(AT!L?K^*BA865/V_.=)7_,Z<+DXM;&@P+0H    *    \:7_
M&B  &&AE861E<G-<=V]R:V)E;F-H7&EC;VXN9=./+RH@3DE,("HO"C&4+6QH
M,2U-    >0    >F_QH@ !MH96%D97)S7'=O<FMB96YC:%QS=&%R='5P+F4L
M1>YV>WT/#V.CK-G?]2[S<*[WN_QOB"6OOW8 "_RM_[W+70.UO[_UC=@[^/K[
MJCVS:6O667PJ:X/JNIB #D4?O20_JS^DF5!H7Y(#(BQ@,W(M;&@Q+5,   "]
M    ):;_&B  '6AE861E<G-<=V]R:V)E;F-H7'=O<FMB96YC:"YE4^+N=GM]
M#P]CHZS9W_4N\W"N][O\;X@EK[]V  O\K?^]RUT#OZ_?PP@=_'UK+&UCN=[9
M_WK =I*FB RXYM1*LK4"8]7$J(F W_^G?=7F6?TARP)E21]&+6QH,2T\!   
M_1   %FY_QH@  E%2%,N9FEL97.M>.EU>QT>_K,3M<_#\/0PKR,!&!;ZF#8V
MGP^O^M\JY!.Z^5G^/C_Y_I6^VTF659/55T?:\;+1<3"#J74 HGOCARABREPH
M2EED ,^=^[!^SEA[HYF 1E.+-?=Z_B1FX99_CEB0Y8 !O"9_3AUMVJ#%Y\CU
MC43&E/\U/R[!(?S!#!C*K-)^@+=S]RE:<)5;>+T .)-D*?2EB# N(/1(,D0B
MVJ,_VGAR@I*ZP:5=&0GZJ2TS)>Y"2/FDEAUV,0?H /RBBRY2=B!NKW8C# 7X
M9X+XAXN]L&')_O?O#!6C ;\9)E@/:$4#[X"DB28'$]J]PI(3B^1#(IR^C'Z8
MU^#!]&U!,1 4GWRDM1G\LLN=IFT0;C^?<8YZ@KI?J+$HU$!ZF)HB[M^^/_9A
M1VI_7V^WBF_P!YFB3H7=QTDAT+MX++5==MO2N+ C !-+3^<_6U/S?,^)4"&?
ME 88["D^U89H^+ZO/Y@I.Y\6TJ&I\G$H7RN]A9MZ$]F]GTE:'(Y5H4<T</"2
M:Q>>Q"[OIL.V[FXIE!0'U*CHRZDCO&>3X27XI.).?4,6L_'$LHG[VDEV'YW'
M\1: *E1PYU&N*$X'DK!1I;MA^]XJ?,^.L8PX;EJ[*K%EJG>E&>&^XH5EI7GZ
MXZ\B+9Z74&Y^>G6?NH:ESS$&5K=+9?A;F^0N:"RZTMF*IF\X9$MM&('727CP
M]E=9"OV^'L.Q8WE;/\""_"RC%4&0ECO7/C-)5SCQ<G*M(JQ9'BB4GKF JDL%
M,,63>%2;#R$37LG0&M:M@>#U3QW$#9JZJ?HY"X'E<52$? @<9/%[]4;9V<66
M%2PI/1JF<PJ;&M4]T<F<@X^(_3&.A>LS0Z%[0/'"J9+VP,N$(O1*G5\SK2%G
M6)<.MRL&&R ')';GM6$  2HIG/NG/;*Y;%HMF,EY,()15F6&#$W/O;H"$BMV
M$] 5(UF><" [(^6RJPG@?F&D*5776EL1(&;QB@A1:;)K/@Q&GO4?L6.*B6_L
MH0'D?BT5)K(?I!_#-+ FC==CP5?0,4LE>$HJR8SHF)O=_9*_@*;ZY+Q7'E^H
M% JB*1 SWO-I;GP--PF+F-^A ;E4(O_^"BXZ)A/XVV<U=Z.XNNN33^ISF*?%
M='OXR\SMY;C5V'_83G2QJ;%D@<)_#IQ@59/D_#"MI 80-H7=4A\X0!3MA=2;
M47BXQ (!M5KTCN&M2]_B6G OF-$ZMC\5ROI5]*$88BXDY6XHO!$R_54]F@)&
M+:9XS5V+,OT$SQ!UO)K@T$VJ(E6,XQX^EI/\M&LUE3K(%;797)03HI1"(\W)
MT5[R4PR_C$;I)!4D4+3J!O?R<-.]0MO<>K[?DE!V*:T^BKJ"/\YH?X[-TH8*
M^=#%Q?N0+04<X()YVC(V)*V<0P3<B#Q&Q@&_^N7K9QJA7BD9F)?WM,-[?F,4
;;)GA9>"DS)-+:0,%[,_2?-8)J0GWC90@$N  
 
end
