HDTenEightyP/NetNews huggingface dataset:
From: tna@mentor.cc.purdue.edu (Trevor Andrews)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: Speculations: Amiga and Mach?
Date: 17 Aug 92 22:19:38 GMT
Organization: Purdue University Computing Center

In article <mykes.0cpy@amiga0.SF-Bay.ORG> mykes@amiga0.SF-Bay.ORG (Mike Schwartz) writes:
>In article <rwm.713991011@atronx.OCUnix.On.Ca> rwm@atronx.OCUnix.On.Ca (Russell McOrmond) writes:
>> bryanf@hpmcaa (Bryan Ford) writes:
>> >I never suggested that Commodore should abandon Amigas without MMUs.  That
>>
>>   Developers need firewalls, users do not.  Developers use MMU based machines.
>> I've been suggesting that CBM attempt to make a 'developer specific' version
>> of the Amiga's O.S. that has all the MMU firewall protection in such a
>> way that more bug-free applications can be written.  Enforcer and Mungwall
>> are a good start, but they don't take care of many types of bugs that
>> could be detected.  I often get problems where I can't tell which
>> application I am running is actually causing the problem.
>>

  I agree totaly Bryan...  If we develope "fullproof" software the users
  do not need protected.

>This is a myth (developers need firewalls, users do not).  Applications written
>for OSes that have firewalls (i.e. MP) still crash on users.  It IS nice to
>have the application clean up and quit without killing your system.
...

  It's nice, but not really needed.  I havn't had my Amiga crash while
  useing it in months.  (well, except while I was writing software *smile*)

 
Take care,
  Trevor

~~        ___ 
         ////         tna@mentor.cc.purdue.edu (128.210.10.8, 128.210.33.1)
        //// 
   ___ ////   //                Imagine Software, Inc.
   \\\X///  \X/                 1218 South 5th Street
    \XXX/  Amiga                Lafayette, IN  47905-1716 U.S.A.
Newsgroups: comp.sys.amiga.programmer
From: grabber@isy.liu.se (Olof Zachrisson;Joakim Verona)
Subject: ARexx and shell commands (question)
Organization: Dept of EE, University of Linkoping
Date: 16 Aug 92 14:29:16 GMT

I've been looking into ARexx recently, and tried the following program:

    /* a little test..  */
    dir                   
    say "I'm here!"

Now, the second line, "dir", is supposed to be passed to the shell, doing
a directory listing. But what I get is a "I'm here!", and nothing else!

So what is the problem here?


Please (e)mail replies. Thanks in advance,

Olof Z.
From: ccsw@bristol.ac.uk (EthaStorm)
Newsgroups: comp.sys.amiga.programmer
Subject: FastFileSystem
Date: 21 Aug 92 13:25:07 GMT
Organization: University of Bristol, England


Hello all.

   Can anyone tell me where I can get hold of the 'FastFileSystem' file? I
seem to have all the other bits and pieces such as AutoDiskChange, but not
FastFileSystem.  Please help!!


    Steff  *8(
From: mykes@amiga0.SF-Bay.ORG (Mike Schwartz)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: Speculations: Amiga and Mach?
Distribution: world
X-NewsSoftware: GRn 1.16f (beta) by Mike Schwartz & Michael B. Smith
Date: 16 Aug 92 23:41:56 PST
Organization: Amiga makes it possible

In article <rwm.713991011@atronx.OCUnix.On.Ca> rwm@atronx.OCUnix.On.Ca (Russell McOrmond) writes:
> bryanf@hpmcaa (Bryan Ford) writes:
> >I never suggested that Commodore should abandon Amigas without MMUs.  That
>
>   Developers need firewalls, users do not.  Developers use MMU based machines.
> I've been suggesting that CBM attempt to make a 'developer specific' version
> of the Amiga's O.S. that has all the MMU firewall protection in such a
> way that more bug-free applications can be written.  Enforcer and Mungwall
> are a good start, but they don't take care of many types of bugs that
> could be detected.  I often get problems where I can't tell which
> application I am running is actually causing the problem.
>

This is a myth (developers need firewalls, users do not).  Applications written
for OSes that have firewalls (i.e. MP) still crash on users.  It IS nice to
have the application clean up and quit without killing your system.

> >				Bryan
> --
>   Opinions expressed in this message are my Own. I represent nobody else.
>   Russell McOrmond  rwm@Atronx.OCUnix.On.Ca Net Support:(613) 230-2282(V.32Bis)
>   FidoNet 1:163/109 Welmat Help 1:1/139  Current WELMAT 'keeper of sources'.

--
Amiga programmer of: GRn, MailMinder, Budokan, Beyond Dark Castle, Dark Castle
Sega Genesis programmer of: Dick Tracy and Marble Madness.
Mike Schwartz  (ames!zorch!amiga0!mykes or mykes@amiga0.sf-bay.org)
1124 Fremont Ave.
Los Altos, CA 94024
From: hellgren@cc.helsinki.fi
Newsgroups: comp.sys.amiga.programmer
Subject: Re: Pascal for the Amiga
Date: 18 Aug 92 13:08:31 GMT
Organization: University of Helsinki

In article <1992Aug17.143101.4982@mits.mdata.fi>, rkaivola@mits.mdata.fi 
(Risto Kaivola) writes:
> 
>   Is there a Pascal compiler system with a source-level debugger available
> for the Amiga (perhaps HiSoft ?), and if so, at what price?
>   If not, is there a need for such a thing?

There is PD-compiler called PCQ (or was it PQC) on FISH disk (I don't remember
the number). It is free, it has includes, it has a good assembler, it is fast
and it has a debugger.

	Vesa Hellgren, University of Helsinki
Newsgroups: comp.sys.amiga.programmer
From: jdickson@jato.jpl.nasa.gov (Jeff Dickson)
Subject: Re: Assembler programming.
Organization: Jet Propulsion Laboratory
Date: Fri, 21 Aug 1992 22:07:18 GMT

In article <64374@cup.portal.com> Aurelius@cup.portal.com (Mark Christian Barnes) writes:
>Charlie Gibbs writes:
>
>|>That's strange. I have a book on the 68000 (by Sybex I think) that
>|>states that address indirect with index and address indirect with index and
>|>displacement are two seperate addressing modes. This is news to me.
>|
>Paragraph 2.11.2.5: Address Register Indirect with Index
>
> ... The address of the operand is the sum of the address in the
>address register, the sign-extended displacement integer in the
>low order eight bits of the extension word, and the contents of
>the index register...
>
> SYNTAX:  d8(An, Xn.W), or (d8, An, Xn.W)
>          d8(An, Xn.L), or (d8, An, Xn.L)
>
>So, I would say that Charlie is correct in saying that the
>displacement is always present in these two addressing modes.
>However the word "displacement" is not in the title of both,
>at least not in my old, official tome, published in 1986 ;-].
>
>			Regards, Aurelius@cup.portal.com

I stand corrected. Quite unnerving to think that in situations where address
register indirect with index type addressing is used (i.e. null terminating
a string: move.b #0,(a0,d0.w) ) requires an additional memory read _just_
to find out that the displacement value wasn't given (zero). The assembler I
use obviously assumes a zero displacement value in the event I don't specify
one, because it doesn't complain. 

jeff

Xref: sparky comp.sys.amiga.programmer:12419 comp.sys.amiga.misc:12770
From: danbo@ccwf.cc.utexas.edu (Dan Higgins)
Newsgroups: comp.sys.amiga.programmer,comp.sys.amiga.misc
Subject: Precompiled Header Prob
Date: 17 Aug 92 09:18:49 GMT
Followup-To: comp.sys.amiga.programmer
Organization: The University of Texas at Austin, Austin TX

OK, as short and simple as possible:

     lc -ph -oPROGNAME.sym INCLUDES.c
     lc -HPROGNAME.sym -Lncd PROGNAME.c,

     where:
     INCLUDES.c is a file containing only headers, structs,
        and data for the main proggy module;
     PROGNAME.sym _should_ be a precompiled header file spit out
        by "lc -ph";
     PROGNAME.c is the source for the main proggy (no #include's in
        this module at all)

So, with Lattice C 5.10 why won't this work?  The precompiled header saves
a ton of time on compile; but the problem shows up when linking
(everything compiles perfectly).
Blink replies with:

     Undefined symbols           First Referenced
     --------------------------- ------------------------
     _MenuStrip                  File 'PROGNAME.o'
     _Gadget0                    File 'PROGNAME.o'

then,

     Error 510: _Gadget0 symbol - Reference to unmerged data item

Gadget0 is in the precompiled header file (should be), so why
can't I reference "extern struct Gadget Gadget0;" in my main module?

Surely SOMEBODY uses precompiled header files...so tell me,
what am I doing wrong this time?

Many Thanks,
Dan
(email to danbo@ccwf.cc.utexas.edu)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
From: fgd3@nifty.UUCP (Fabbian G. Dufoe, III)
Newsgroups: comp.sys.amiga.programmer
Subject: Re:  Programming Tools (was: Amiga programmers UNITE)
Distribution: world
Date: 20 Aug 92 21:08:00 EDT
Organization: Fabbian G. Dufoe, III

In article <piet.025y@okapi.sub.org> piet@okapi.sub.org (Peter Vohmann) writes:
>Have you ever used CodeProbe (SAS/C debugger)? It does a lot of the things
>you mentioned (except the guarantee). Yesterday again I stepped through my
>assembler code with cpr, watching the register values I had done. 'Quit'
>cleaned everything up nicely, one instruction before the point-of-crash.
>So what? ;-)

   Isn't that a bit of an overstatement?  The "Quit" command in CodeProbe
doesn't clean up everything--CodeProbe doesn't keep track of the resources
you've allocated.  It does get you out of the debugger and let you continue
what you were doing without a crash.  But until you reboot you can't recover
the memory you've allocated, free any locks that were left hanging, and so
forth.

--Fabbian G. Dufoe, III
   350 Ling-A-Mor Terrace South   | GEnie:    F.DUFOE3
   St. Petersburg, Florida  33705 | internet: fgd3%nifty@tct.com
   813-823-2350                   | uucp:     ...tct!deep6!nifty!fgd3

Xref: sparky comp.sys.amiga.programmer:12249 comp.sys.amiga.multimedia:1187
From: stevem@gpsoft2.UUCP (Steve McNamee)
Newsgroups: comp.sys.amiga.programmer,comp.sys.amiga.multimedia
Subject: Re: Need team for PD ARexx B-tree ISAM server...
Date: 10 Aug 92 16:08:55 GMT
Reply-To: cbmehq!gpsoft2.adsp.sub.org!stevem@cbmvax.commodore.com
Organization: GP Software
X-NewsSoftware: GRn 1.16e (7/4/92) by Mike Schwartz & Michael B. Smith

In article <-cym_n#@lynx.unm.edu> rbattle@hydra.unm.edu (Ron M Battle STUDENT) writes:
> 
> I need some help in porting a Mix Software B-tree ISAM system over to
> the Amiga, to be released into the public domain. This is a beautiful,
> inexpensive system for MS-DOS systems. I think there is a need to develop
> an ARexx server for this system that would accept SQL type commands.
> There is a lack of cheap DBMS systems for Amiga front-ends like Director,
> CAnDo,etc. that can access HUGE databases, are disk-based, contain
> variable length records (unlike D-Base), and is FAST! I started to convert
> this package and was up to about 15,000 records when it bombed...
> something about node leaves...?? Anybody out there with B-tree experience?
> Let me know!   :)   rbattle@hydra.unm.edu

Sounds like MAYBE a stack overflow.  Are you using a lot of recursion?
Unlike *nix the amiag does NOT have an infinite stack.  Standard stack
is 4k and can be set to as much as memory will allow but whatever it is
set to - that is IT.

So if you are using a lot of recursion the moral is - DONT use more 
automatic variables than you absloutely HAVE to - allocate everything from
the system memory pool.

BTW I would be VERY interested in seeing the results of your efforts.


Regards,

-- 
********************************************************************
Steve McNamee -	Sometimes associate of GP Software

EMAIL:	gpsoft2.adsp.sub.org!stevem@cbmehq.commodore.com
	cbmehq!gpsoft2.adsp.sub.org!stevem@cbmvax.commodore.com
	cbmehq!cbmaus!cbmozq!gpsoft2!stevem@cbmvax.commodore.com

'What a wonderful world it is that has girls in it!'
				- Lazarus Long AKA R A Heinlein
********************************************************************
From: fmonro@neumann.une.edu.au (F J Monro)
Newsgroups: comp.sys.amiga.programmer
Subject: How can I play "stereo" samples?
Date: 13 Aug 92 10:08:48 GMT

Gudday,

I've been working on a project which requires playing 
sampled sounds. I've taken the audio device example
from page 620 of the 1.3 edition, Librabrys & Devices
Volume of the RKMs; as a model for my code.

This code works fine as far as it goes, But I have a
problem, I want to play the (mono) sample in "stereo",
ie from both speakers simultaneously. I've tried 
changing the channel allocation array (called chans in
this example) to {3,5,10,12}, but this has no effect,
the sample still comes out of one speaker only.

Has anyone else had this problem? Is there any simple 
way to make it "stereo"? Please bear in mind that I
know next to nothing about samples, and the audio.device.


-Che Monro			aka fmonro@neumann.une.edu.au
	"reverse the polarity of the neutron flow.."
From: kentd@FtCollins.NCR.com (Kent Dalton)
Newsgroups: comp.sys.amiga.programmer
Subject: Emulating UNIX pipes on Amiga (GCC?)
Date: 19 Aug 92 08:11:30 GMT
Reply-To: Kent.Dalton@FtCollinsCO.NCR.com
Organization: NCR Microelectronics, Ft. Collins, CO


Does anybody know how Amiga GCC 2.1/ixemlib implements pipes? I am
porting a program which extensively uses pipes and the file handles
provided by the GCC popen function are behaving like they are pointed at
/dev/null. Does it even work at all?

Looking at the source it looks like the straight Berkeley code. 
Does anyone have any example programs that work with GCC code or
alternatively any ideas on rolling my own popen()/pclose()?

--
/**************************************************************************/
/* Kent Dalton                   * EMail: Kent.Dalton@FtCollinsCO.NCR.COM */
/* NCR Microelectronics          * Phone: (303) 223-5100 X-319            */  
/* 2001 Danfield Ct. MS470A      *   FAX: (303) 226-9556                  */
/* Fort Collins, Colorado 80525  *                                        */
/**************************************************************************/
Why don't you ever enter and CONTESTS, Marvin??
 Don't you know your own ZIPCODE?
From: ry41@rz.uni-karlsruhe.de (Bernhard Moellemann)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: Console file handlers from within a Shell started program
Date: 13 Aug 92 12:17:22 GMT
Organization: University of Karlsruhe, Germany

In article <1992Aug11.080104.3354@syma.sussex.ac.uk>, mpue2@syma.sussex.ac.uk (James E. Talbut) writes:
>I have a nice little CLI program for which I want to be able to use the
>console io even if the program has got it's io redirected.
>Does that make sense?

I think not. The only reason I could imagine is the printing of errors.

>I want access to the file handle that the Shell would give if the
>programs io was not redirected, in addition to that for the redirected io.

fh=Open("*",MODE_OLDFILE) in 1.2/3

fh=Open("CONSOLE:",MODE_OLDFILE) in 2.0

This gives you a copy of the handle to the console window.

-- 
 Bernhard Moellemann   <spare space>   Chairman of the Nessy-Fan-Club   //
 internet=zza@rz.uni-karlsruhe.de <space> FIDO=2:241/7506.42  IRC=ZZA  //
 nessynet=008  Lifenet=77:7700/11.42  greetings to my Marsupilami  \\ //
 2000/500 Technical Reference Manual:  "A1000, the original Amiga"  \X/
From: chopps@ro-chp.UUCP (Chris Hopps)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: BOOPSI classes anywhere?
Date: Fri, 21 Aug 1992 16:57:52 GMT
Organization: Not an Organization
X-Newsreader: Arn V1.00 beta rel2

In article <27532@sophia.inria.fr>, Cedric Beust writes:

>
> 	Is there a place where BOOPSI classes written by programmers
> 	are gathered?
>
> 	Who wrote BOOPSI classes already? Don't you think such
> 	a place might be a good idea so that programmers don't
> 	reinvent the wheel?

The problem is that CATS has not yet (still) aranged for a way to register
BOOPSI libraries.  So making them public is a bit hard.

I have developed a skeleton class (BOOPSI) as a learning expirement, also
"progressbariclass" that fills a bar showing progress (as the name implies.)

Toyed around with a label class, a node and group class, and started a list
class, but had to quit becuase I ran out of free time.  I may be starting
back up with them soon.

Until CATS figures out what it wishes to do with registration of BOOPSI classes
there is really no way to make them public.  This is very disheartening as it
kills the entire philosophy behind BOOPSI.

------------------------
The Royal Oak Chophouse >> Chris Hopps
Royal Oak, Michigan     >> sycom.mi.org!ro-chp!chopps
Newsgroups: comp.sys.amiga.programmer
From: vinsci@nic.funet.fi (Leonard Norrgard)
Subject: Re: GCC - How to debug a program using ixemlib?
Organization: Soft Service, Inc.
	<KENTD.92Aug18140500@zappa.FtCollins.NCR.com>
	<1992Aug19.072119.10956@fishpond.uucp>
Date: 21 Aug 92 02:29:03

In article <1992Aug19.072119.10956@fishpond.uucp> fnf@fishpond.uucp (Fred Fish) writes:
> >Markus>              As soon as gdb can use a hunk libbfd.a, i'll
> >Markus> go for ptrace(), which will enable a special SIGTRAP mode.
> 
> Hmm, maybe we have a chicken-or-the-egg type problem.  I'm perfectly
> capable of adding hunk support to the BFD library, but wouldn't have
> the foggiest idea how to go about implementing ptrace(), which is why
> I've put off any development in that area for the last year or so...

I've been working on a hunk backend for some time, but progress is
slow.

> -Fred

-- Leonard
From: keithc@welchgate.welch.jhu.edu (Keith Christopher)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: A needed utility for the Amiga...
Date: 21 Aug 92 12:10:49 GMT
Organization: Johns Hopkins Univ. Welch Medical Library


 What is the best way to get response from a gadget being clicked ?

I used

 switch (((struct Gadget *) imsg->IAddress)->GadgetID)
{
case GD_close:
.
.
break;
case GD_open:
.
puts("Test!");.
.
break;
}

any one know why the window will open and start outputting Test! over and over
then close.? it seems as though it's treating the situation as if the gadgets
are being clicked when I haven't.

keithc

New to programming the amiga. But with great ideas.!
From: jbickers@templar.actrix.gen.nz (John Bickers)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: Console file handlers from within a Shell started program
Date: 20 Aug 92 16:15:27 GMT
Article-I.D.: templar.jbickers.0diz
 <1b7ea705.ARN22d0@prolix.pub.uu.oz.au><14545@borg.cs.unc.edu> <1b854d0d.ARN237c@prolix.pub.uu.oz.au>
Organization: TAP, NZAmigaUG

Quoted from <1b854d0d.ARN237c@prolix.pub.uu.oz.au> by dac@prolix.pub.uu.oz.au (Andrew Clayton):

>    fprintf(stderr,WELCOME"\n%s",ctime(&timestart));

    ...

> Where is the problem?

    You can't redirect stderr. The C startup code does an
    Open("*",...) to create that stderr file handle, whereas stdin and
    stdout are just picked up from Input() and Output(), which CAN be
    redirected.

> Dac
--
*** John Bickers, TAP, NZAmigaUG.        jbickers@templar.actrix.gen.nz ***
***    "Radioactivity - It's in the air, for you and me" - Kraftwerk    ***
From: paulk@terapin.com (Paul Kienitz)
Newsgroups: comp.sys.amiga.programmer
Subject: System() and pr_ConsoleTask
Date: 15 Aug 92 02:19:47 PST
Organization: BBS

Why do people traditionally pass a window filehandle to System() for input and
NULL for output?  There's nothing in the documentation to support this -- what
is it for?

The other day I found that when I run my program which opens a CON: window and
then runs a program in it with System(command, SYS_Input, windowhandle,
SYS_Output, NULL, TAG_DONE) -- woops, make that SystemTags -- running UnZip 4.1
causes its output to go to the parent CLI window instead of to the window I
gave it, EVEN THOUGH I had specifically pointed my own pr_ConsoleTask to the
new window beforehand, and it's supposed to copy that from its parent process.
The new CLI inside System should be completely unaware of the original CLI
window.

This is with KS 37.175, SetPatch 38.30
Xref: sparky comp.sys.amiga.programmer:12507 comp.sys.amiga.hardware:14331
From: galetti@uservx.plk.af.mil
Newsgroups: comp.sys.amiga.programmer,comp.sys.amiga.hardware
Subject: Cross assemblers for Amiga available
Date: 20 Aug 92 12:36:56 GMT
Organization: Phillips Laboratory - Kirtland AFB

I have developed a Hitachi HD6303 cross assembler for the Amiga.  The HD6303
is an improved version of the Motorola 68HC05 series, and the assembler could
easily be modified to support the Motorola chips as well.  If there is enough
interest, I will release the assembler as a shareware product.  Please e-mail
me any feedback you have on this.

Thank you in advance,

-Ralph

-- 
  ___________________________________________________________________________
 /   Ralph Galetti                  Internet:   galetti@uservx.plk.af.mil    \
|    PL/LTT                         Interests:  computers, music, computers   |
|    Kirtland AFB, NM 87117-6008                and music, golf, sleep.       |
 \"What's he like?  It's not important--Particle Man." - They Might Be Giants/
Newsgroups: comp.sys.amiga.programmer
From: s37732v@vipunen.hut.fi (Markus Juhani Aalto)
Subject: Re: Programming Tools (was: Amiga programmers UNITE)
Organization: Helsinki University of Technology, Finland
Date: 12 Aug 92 18:58:53

In article <1992Aug11.153735.10768@samba.oit.unc.edu> utoddl@guitar.oit.unc.edu (Todd M. Lewis) writes:

   In article <1992Aug10.223432.27395@CS.ORST.EDU> divineg@prism.cs.orst.edu  
   (Glade Diviney) writes:
   >  What kinds of tools _DO_ they have?  Maybe an integrated C environment?

   The Interface Builder on the NeXT is an extremely powerful tool for
   (you might guess) building user interfaces.  The debugger is also
   pretty good.  That coupled with several hi-level IPC capabilities (cut
   and paste just about anything anywhere, drop-in text editor, etc) make
   it hard to make a program look bad even if it is.  

Does that interface builder allow you to make interfaces which
automatically adapts to different fonts etc...

Making good interface with GadTools takes still too long and is too
annoying. hmm. Maybe someone should write better library than gadtools
is with BOOPSI classes.

   The idea for the Amiga is to create tools that make it easier to create
   good looking (and perhaps good) programs than it is to make ugly ones.  It's
   still too easy to write gaud-awfull looking programs on the Amiga.

Well it isn't easy to make awfull looking interfaces with GadTools but
it is easy to make badly behaving interfaces. 

Agreed! GadToolsBox is a great start but it doesn't allow you to make 
completely font independent interfaces (if I remember right).

   As for your integrated C environment, the new SAS product looks very good.
   You still have to write C code eventually, but it does seem to remove
   as much or more of the associated pain from the process as any other
   set of tools I've seen.  (And I'm a Manx fan from way back.)

Do you mean V5.1b? 


   Todd M. Lewis / utoddl@guitar.oit.unc.edu
--


**************************************************************************
*         Markus Aalto              | Helsinki University of Technology  *
*                                   |                                    *
*  EMail: s37732v@vipunen.hut.fi    | Faculty of Electric Engineering    *
*  Fax:   358-0-8746991 (Sometimes) |                                    *
*                                   | Undergraduate in Computer Science  *
**************************************************************************
From: po87553@cs.tut.fi (Pasi 'Albert' Ojala)
Subject: Console-device's internal struct
Keywords: console, dos-packets, lattice
Organization: Tampere University of Technology
Date: Mon, 17 Aug 1992 18:33:58 GMT

A couple of months ago I saw a thread which mentioned something
about an internal console-device structure, to which a pointer was
returned by the ACTION_DISK_INFO. Now I need to know more about
this structure to be able to use SAS/C on a serial line.

Lc obviously tries to get the window dimensions etc. using this
packet and will give up if it gets ERROR_ACTION_NOT_KNOWN..
-- 
Pasi 'Albert' Ojala
po87553@cs.tut.fi	albert@cc.tut.fi
--