home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaDemoCD2.iso / ASCII / TEXTE / SCENE / AMIGA / Useful-Amiga / AmigaFAQ / AmigaFAQ.doc < prev    next >
Encoding:
Text File  |  1994-05-14  |  84.5 KB  |  1,926 lines

  1.   Amiga-FAQ
  2.   *********
  3.   
  4.      This document lists some frequently asked questions and trys to give
  5.   answers.  Is intention is to help new users and to reduce the amount of
  6.   news that most experienced users don't like to read anymore.
  7.   
  8.      Please notice that there are many questions that aren't answered yet,
  9.   even more: Whole sections that remain empty! I feel that I cannot give
  10.   satisfying answers. So it's your turn: Fill the gaps and tell me what i
  11.   should include into this document!
  12.   
  13.  
  14.   Disclaimer
  15.  
  16.   1 CPU, Custom chips, RAM and other stuff
  17.     1 What are the 68EC020 and the 68EC030?
  18.     2 What's an FPU?
  19.  
  20.   2 The Operating System
  21.     1 Can I use another Kickstart than the builtin?
  22.  
  23.   3 Programming
  24.     1 What documentation do I need as an Amiga programmer?
  25.     2 What is CATS?
  26.     3 Where do I get the Amiga includes?
  27.     4 How do I become a developer?
  28.     5 What compilers (assemblers) are there?
  29.     6 Those never working Esc sequences!
  30.     7 Is it possible to use AmigaBasic on the A1200?
  31.     8 How do I localize my program?
  32.     9 How to obtain a pointer to a console's window
  33.     10 What are pragmas?
  34.     11 Where do I find the function xxx?
  35.  
  36.   4 Applications
  37.     1 Text Editors
  38.     2 What word processors are there?
  39.     3 Desktop Publishing
  40.     4 What is TeX and where can I get it?
  41.     5 Are there any Postscript interpreters?
  42.  
  43.   5 How about Graphics?
  44.     1 What are chunky and planar displays?
  45.     2 What is doublebuffering?
  46.     3 What monitors will work on my Amiga 1200/4000?
  47.     4 How do I switch between PAL and NTSC?
  48.  
  49.   6 Emulators
  50.     1 Can I run Unix on my Amiga?
  51.     2 Is it possible to use the Amiga as X11 terminal?
  52.  
  53.   7 Miscellaneous
  54.     1 Is there any unix version of LhA?
  55.     2 What are files ending with ...?
  56.     3 Is there a Stacker-like utility to pack my hard drive?
  57.     4 Where do I get Fish disk xxx?
  58.  
  59.   8 Where and how do I get Software?
  60.     1 Files and databases on freely distributable software
  61.     2 A collection of tests
  62.     3 Getting files from a FTP server
  63.     4 Getting files from a Mail server
  64.     5 The Fish disks
  65.       1 The Amiga Library disks
  66.       2 The Fresh Fish CD-Roms
  67.     6 How do I Read and write MS-Dos disks?
  68.     7 How do I split large files?
  69.  
  70.   The Amiga-FAQ archive
  71.  
  72.   Contributions
  73.  
  74.   Credits
  75.  
  76.   Index
  77.  
  78.  
  79.  
  80.   Disclaimer
  81.   **********
  82.   
  83.      This document is
  84.   
  85.        Copyright (C)  Jochen Wiedmann
  86.                        Am Eisteich 9
  87.                  72555 Metzingen (Germany)
  88.                        Tel. 07123 / 14881
  89.                        Internet: wiedmann@mailserv.zdv.uni-tuebingen.de
  90.   
  91.      Permission is granted to make and distribute verbatim and modified
  92.   copies of this document following the terms of the "GNU General Public
  93.   License" provided the copyright notice and this permission notice are
  94.   preserved on all copies.
  95.   
  96.      The author gives *absolutely no* warranty that the answers given
  97.   here are correct or usable. Many of them were contributed by other users
  98.   and I cannot even make marginal checks. If you think that something
  99.   should be changed, please tell me. Suggestions, contributions, new
  100.   answers, critics, flames (oh, how I like this `nil:' :-) are rather
  101.   welcome.  See Contributions.
  102.   
  103.   1 CPU, Custom chips, RAM and other stuff
  104.   ****************************************
  105.   
  106.      This chapter contains questions concerning the Amiga-Hardware.
  107.   
  108.   1.1 What are the 68EC020 and the 68EC030?
  109.   =========================================
  110.   
  111.      Motorola, the company producing the 680x0 family offers crippled
  112.   versions of their processors. They are a little bit cheaper than the
  113.   originals, that's why Commodore decided to build the 68EC020 into the
  114.   A1200 and the 68EC030 into the A4000/030.
  115.   
  116.      The difference between the 68020 and the 68EC020 is that the latter
  117.   can address just 16Mb of memory. That's why the A1200 cannot have more
  118.   that 10 Mb RAM. In most cases you will not notice the difference.
  119.   
  120.      This is not the case for the 68EC030: Many owners will notice that
  121.   the 68030 has an MMU and the 68EC030 doesn't have. There are some
  122.   important programs depending on an MMU, for example Enforcer (a
  123.   debugging utility), GigaMem (a program to emulate virtual memory) or
  124.   all current Unix versions (see Unix). Other Amigas than the A4000 and
  125.   the A3000 need an additional processor card to run these.
  126.   
  127.      Finally the 68LC040 is a 68040 without FPU. See FPU.
  128.   
  129.   1.2 What's an FPU?
  130.   ==================
  131.   
  132.      The first 680x0 processors (upto 68030) could process integers only.
  133.   Floating point operations had to be emulated by the software. An FPU is
  134.   a chip (or part of a chip) that can process floating point operations, a
  135.   mathematical coprocessor.
  136.   
  137.      One separates three FPU types on the Amiga: The 68881, 68882 and the
  138.   68040's internal FPU. The 68882 is up to 1.5 times faster than the
  139.   68881, because it is splitted in two parts: A conversion unit (the
  140.   FPU's are using an 80 bit format internally) and the arithmetic unit.
  141.   The 68040's internal FPU adds a pipeline, but misses the trigonometric
  142.   instructions of the others. These are still emulated by the software,
  143.   68040.library for example.
  144.   
  145.      Special programs (Raytracing, DTP, Mathematics, TeX) are offered in a
  146.   special coprocessor version which are up to 50 times faster than the
  147.   original versions.
  148.   
  149.      Michael Kaiser (kaiser@ira.uka.de)
  150.   
  151.   2 The Operating System
  152.   **********************
  153.   
  154.      This chapter handles questions concerning the operating system,
  155.   Kickstart as well as the Workbench.
  156.   
  157.   2.1 Can I use another Kickstart than the builtin?
  158.   =================================================
  159.   
  160.      First let's drop some words on the Kickstart's Copyright: This
  161.   belongs to Commodore, you *must* not use Kickstarts, without the right
  162.   to do it!  Especially it isn't allowed to make an image of anyone
  163.   else's Kickstart and run this on your own Amiga. (I even doubt that it
  164.   is allowed to do this on your own Amigas, if you have more than one.)
  165.   
  166.      But of course it is possible and allowed for some people, developers
  167.   for example.  There are two different ways, a hardware solution and a
  168.   software solution.  The former is to buy a card which can hold two or
  169.   more Kickstart ROMS and allows to select between when the System is
  170.   booting.
  171.   
  172.      The software solution needs a program (softkicker) and an image of
  173.   the ROM. The softkicker allocates RAM, loads the ROM image into the
  174.   allocated memory and reboots. Of course you have less RAM after the
  175.   Reboot: 256Kb when running Kickstart 1.2 or 1.3 and 512Kb for Kickstart
  176.   2.0 or higher.
  177.   
  178.      There are different Softkickers, some of them needing a MMU (see
  179.   68EC0xx). A nearly perfect solution seems to be `kick13' (Aminet,
  180.   directory `util/misc') because it has the ROM image included. (With
  181.   Commodores agreement!) For newer Kickstarts I recommend SKick 3.43
  182.   (Aminet, directory `os20/util') because it doesn't need a MMU and
  183.   supports many different Kickstarts. It is rather easy to create the ROM
  184.   image using the following program:
  185.   
  186.            #include <stdio.h>
  187.        
  188.            #define kickorig 0xf80000   /*  0xfc0000 for Kick 1.2 und 1.3   */
  189.            #define kicklen  0x080000   /*  0x040000 for Kick 1.2 und 1.3   */
  190.        
  191.            void main(int argc, char*argv[])
  192.              { FILE *fh;
  193.        
  194.                if ((fh = fopen("kickstart.file", "w"))  !=  NULL)
  195.                  { result = fwrite(kickorig, kicklen, 1, fh);
  196.                  }
  197.                fclose(fh);
  198.              }
  199.   
  200.   3 Programming
  201.   *************
  202.   
  203.      This chapter handles problems arising for programmers only.
  204.   
  205.   3.1 What documentation do I need as an Amiga programmer?
  206.   ========================================================
  207.   
  208.      The best information available are the RKMs (ROM Kernel Manuals), 3rd
  209.   edition, by Commodore, published by Addison-Wesley:
  210.        The Amiga ROM Kernel Manual:  Libraries, ISBN 0-201-56774-1
  211.        The Amiga ROM Kernel Manual:  Devices, ISBN 0-201-56775-X
  212.        The Amiga ROM Kernel Manual:  Includes and Autodocs, ISBN
  213.                                                             0-201-56773-3
  214.        The Amiga Hardware Manual, ISBN 0-201-56776-8
  215.        The Amiga User Interface Style Guide, ISBN 0-201-57757-7
  216.   
  217.   Especially the RKM: Libraries is a must. The RKM: Includes and Autodocs
  218.   isn't that much worth: Better get the same stuff on disk instead to
  219.   have it online.  See Includes.
  220.   
  221.      AmigaDOS isn't included in these books. The Autodocs give much
  222.   information, but to go deeper you probably need
  223.        The AmigaDOS Manual, 3rd Edition, ISBN 0-553-35403-5
  224.      published by Bantam Books.
  225.   
  226.      Another good choice is
  227.        The Amiga Guru Book
  228.   
  229.   by Ralph Babel. The book starts with a survey on different aspects of
  230.   programming the Amiga. (About 250 pages) Useful for beginners are the
  231.   sections on the Amiga's data types (not to be confused with the 3.x
  232.   DataTypes used by MultiView, for example), the Includes and the
  233.   amiga.lib. But even experienced programmers will find useful things
  234.   here that are missing in the RKMs.  But the largest part are about 500
  235.   pages on AmigaDOS and, as I think, the most important, because AmigaDOS
  236.   is the worst officially documented part of the OS. The book is rather
  237.   concise and hence not as easy to read as the RKMs, but I recommend it
  238.   as an addition and instead of the AmigaDOS manual.  (Not, however, a
  239.   replacement for the Libraries and Devices, which aren't covered here.)
  240.   Unfortunately the book has no ISBN and is available in special stores
  241.   only. But there are some mail order companies which offer it for about
  242.   50$ and which accept credit cards:
  243.   
  244.        Buchhaus Gonski, Neumarkt 18a, 50667 Koeln, Germany
  245.        Phone: 0221/2090972,        Fax: 0221/2090959
  246.        
  247.        Buchhandlung Bouvier, Am Hof 32, 53113 Bonn, Germany
  248.        Phone: 0228/7290169         Fax: 0228/7290178
  249.        
  250.        Hirsch & Wolf OHG, Mittelstrasse 33, 56564 Neuwied, Germany
  251.        Phone: 02631/83990          Fax: 02631/839931
  252.        (Eurocard/Mastercard/VISA)
  253.        
  254.        DTM-Computersysteme, Dreiherrenstein 6a, 65207 Wiesbaden, Germany
  255.        Phone: 06127/4064           Fax: 06127/66276
  256.        (Eurocard/Mastercard)
  257.        
  258.        Unlimited GmbH, Kehrstrasse 23, 65207 Wiesbaden, Germany
  259.        Phone: 06127/66555          Fax: 06127/66636
  260.        
  261.        Periscope, Attn: Cody Lee, 1717 W Kirby Ave, Champaign, IL 61821, USA
  262.        Phone: +1 (217) 398 4237    Fax: +1 (217) 398 4238
  263.        
  264.        Someware, 27 rue Gabriel Peri, 59186 Anor, France
  265.        Phone: +33 27596000         Fax: +33 27595206
  266.        E-Mail: didierj@swad.adsp.sub.org
  267.   
  268.   3.2 What is CATS?
  269.   =================
  270.   
  271.      This is a department at Commodore West Chester which was formerly
  272.   named `Commodore Amiga Technical Support' and was later renamed
  273.   `Commodore Application and Technical Support'. These are people that
  274.   work independently of Engineering, but close together with them, and try
  275.   to help developers outside of Commodore to create nice Amiga
  276.   applications, software or hardware. To achieve this, CATS has gathered
  277.   a lot of informations and tools, on floppy, CD, or paper. Much of this
  278.   material is also available to the general public. (1) But don't mix
  279.   this up with some sort of Hotline for everyone!
  280.   
  281.      For Americans the address to get this material is
  282.            CATS - Developer Applications
  283.            Commodore
  284.            1200 Wilson Drive
  285.            West Chester, PA. 19380
  286.   
  287.   for all Europeans it's a company in Germany:
  288.            Fa. Hirsch & Wolf
  289.            Mittelstr. 33
  290.            56564 Neuwied
  291.            Tel. 02631/83990
  292.   
  293.      Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
  294.   
  295.      ---------- Footnotes ----------
  296.   
  297.      (1)  Which means: For Non-Developers.
  298.   
  299.   3.3 Where do I get the Amiga includes?
  300.   ======================================
  301.   
  302.      The only legal way to get the includes and autodocs (and you *should*
  303.   get them, they are *very* useful!) is to become a developer (see
  304.   Developer) or to buy the `NDU' (Native developers update kit, also
  305.   known as `NDUK' or `NDK'), which is offered by CATS. They cost about
  306.   30$ plus shipping and this seems to me to be a fair price. See CATS.
  307.   The current version is 3.1.
  308.   
  309.      If you need only the includes, you could get them as well with a
  310.   compiler (commercial compilers or the registered version of Dice) or by
  311.   getting the Fresh Fish CD. See Fish CD.
  312.   
  313.   3.4 How do I become a developer?
  314.   ================================
  315.   
  316.      You need the `ADSP' (Amiga Developer Support Program) documents. To
  317.   get this write a letter to your local Commodore branch asking for these
  318.   documents.  Everything else should be explained there. The german
  319.   address (for the US address see CATS) is
  320.            Commodore
  321.            Lyoner Strasse 38
  322.            60528 Frankfurt
  323.      There are three different developer versions:
  324.   *Registered*
  325.        developers get access to the adsp-Net (kind of a
  326.        Commodore-internal Usenet), which makes it possible to discuss
  327.        problems with other developers, Commodore engineers included.
  328.        Registered developers pay about 80$ per year, plus initial 30$
  329.        initially.
  330.   
  331.   *Certified*
  332.        developers seem to me the most interesting claass: They have the
  333.        possibility copy the most beta versions of the system software
  334.        (Kickstart and Workbench) and the respective Includes and
  335.        AutoDocs. (Not all beta versions and especially no beta hardware.)
  336.        You pay about 250$ per year plus 50$ initially for this.
  337.   
  338.   *Commercial*
  339.        developers finally have in most details the same as certified
  340.        developers, but may expect to get more beta versions and sooner,
  341.        included beta hardware (This has *not* always been so in the
  342.        past.), hencethey pay about 400$ plus 50$ initially.
  343.   
  344.   The above describes the prices and the situation in Germany and might be
  345.   different elsewhere. Especially not all Commodore branches offer the
  346.   registered status. A tip is to build a group of users and become a
  347.   developer group, so the costs are reduced.
  348.   
  349.      All developers have to sign the so called`NDA' (non disclosure
  350.   agreement), with which they accept not to give the received
  351.   informations to unauthorized people.
  352.   
  353.   3.5 What compilers (assemblers) are there?
  354.   ==========================================
  355.   
  356.      There is a lot of programming languages on the Amiga, commercial as
  357.   well as freely distributable. I will enumerate only those that I know
  358.   or which seem it worth to me otherwise.
  359.   
  360.   *Assembler*
  361.        All C-compilers have an Assembler included. Freely distributable
  362.        are A68K and PhxAss (directory `dev/asm' on Aminet or Fish disks
  363.        521 and 906)
  364.   
  365.   *C*
  366.   *C++*
  367.        Freely distributable C-compilers are `gcc' (which has its own
  368.        directory `dev/gcc' on Aminet) and the evaluation version of
  369.        `Dice' (for example per FTP from `ftp.uni-paderborn.de', directory
  370.        `/news/comp.binaries.amiga/volume91/languages' or on Fish disk
  371.        491).  `Dice' is Shareware, however, but registering will cost
  372.        only 50$.  The advantage of `gcc' is that you find `gcc' versions
  373.        all over the world and on all computer systems. Another advantage
  374.        is that C++ is included into `gcc'! But it is slow and needs 4Mb
  375.        of RAM or more. `Dice' is very fast. Both compilers seem to be
  376.        reliable.
  377.   
  378.        Commercial C compilers are `Aztec-C' and `SAS-C'. I cannot
  379.        recommend `Aztec-C', because the compiler doesn't seem to get
  380.        further development. It should be remarked that the commercial
  381.        compilers have especially wonderful debugging utilities (Source
  382.        level debuggers!) that the others are missing. `Dice' will become
  383.        commercial soon too and probably will have debugging utilities
  384.        then. SAS-C has a crosscompiler included, which translates C++ to
  385.        C and supports the source level debugger too.
  386.   
  387.        Comeau C++ is a crosscompiler like SAS-C++. That wouldn't be a
  388.        problem, but Comeau C++ doesn't have a C compiler included.  You
  389.        need SAS-C, Aztec-C or Dice additionally. But it supports the
  390.        newest standards. And like gcc it runs on many platforms. Maxxon
  391.        C++ is offered in Germany. I cannot say anything on it. Both
  392.        compilers are commercial.  Comeaus address is:
  393.                 Comeau computing
  394.                 91-34, 120th Street
  395.                 Richmond Hill, NY, 11418-3214
  396.                 USA
  397.             
  398.                 EMail: Greg Comeau, comeau@bix.com
  399.   
  400.   *Forth*
  401.        JForth is said to be an excellent Amiga port of Forth. Among its
  402.        advantages are object oriented extensions, full Amiga interface
  403.        and an application generator. It is available from:
  404.                 Delta Research
  405.                 P.O. Box 151051
  406.                 San Rafael, CA   94915-1051
  407.             
  408.                 Phone: (415) 453-4320
  409.                 EMail: Phil Burk, phil@ntg.com
  410.                        Mike Haas, haas@starnine.com
  411.   
  412.   *Fortran*
  413.        (Sigh! Still people who need it :-<) Freely distributable are BCF
  414.        (Fish disk 470) and f2c, a Fortran to C converter (Aminet,
  415.        directory `/dev/misc'). A commercial compiler is offered from
  416.        ABSoft. All these are Fortran 77 compilers, I don't know any
  417.        Fortran 90 compiler on the Amiga.
  418.   
  419.   *Lisp*
  420.        Freely distributable Lisp interpreters are XLisp (Fish disk 181)
  421.        and OakLisp (Fish disks 519 and 520) and CLISP
  422.        (`/pub/lisp/clisp/binaries/amiga' at the server `ftp
  423.        ma2s2.mathematik.uni-karlsruhe.de'). Lisp compilers are Gambit
  424.        (Fish 764 and 765) and Scheme-to-C (Fish disks 556, 557 and 558).
  425.        A mailing list is available too: Send a mail with the word
  426.        `Subscribe' to `amigalisp@contessa.phone.net'.
  427.   
  428.   *Prolog*
  429.        `/dev/lang/UNSWProlog.lha' and `dev/lang/sbp3_1e.lha' on Aminet as
  430.        well as `SBProlog' on Fish disk 141 and `SBProlog' on Fish disk
  431.        145 are freely distributable Prolog interpreters.
  432.   
  433.   *Modula-2*
  434.        M2Amiga is offered in Europe, Benchmark Modula-2 in the U.S. Both
  435.        are said to be very good, have a powerful souurce-level-debugger,
  436.        a large library.  Especially M2Amiga has great support by a german
  437.        user-group (AMOK) which for example offers own PD disks.
  438.   
  439.        M2Amiga is offered by:
  440.                 A+L AG
  441.                 Daderiz 61
  442.                 2540 Grenchen
  443.                 Schweiz
  444.             
  445.                 Tel.: +41/65/52 03-11
  446.                 Fax:              -79
  447.   
  448.        Benchmark Modula-2 is available from:
  449.                 Armadillo Computing
  450.                 5225 Marymount Drive
  451.                 Austin, Texas 78723
  452.                 USA
  453.             
  454.                 Phone/FAX: 512/926-0360.
  455.                 EMail: Jim Olinger, jolinger@bix.com
  456.   
  457.   *Oberon*
  458.   *Oberon-2*
  459.        AmigaOberon is offered by A+L too. It is integrated into a full
  460.        developers environment and has a large library of modules. Library
  461.        linker and source level debugger are available. The AMOK user goup
  462.        supports AmiOberon as well as M2Amiga.
  463.   
  464.   *Pascal*
  465.        There is a PD-compiler called PCQ (Directory `dev/lang' on Aminet
  466.        or Fish disk 511). It doesn't support all of Pascal and major
  467.        features are missing. P2C, a pascal to C converter is on disk 341.
  468.        (Aminet: `/dev/misc/p2c120.lha') Additionally there are two
  469.        commercial compilers called HiSoft Pascal and KickPascal. HiSoft
  470.        Pascal and P2C claim to be compatible to Turbo Pascal up to 5.0.
  471.        HiSoft has a source level debugger included.
  472.   
  473.   3.6 Those never working Esc sequences!
  474.   ======================================
  475.   
  476.      Many printers come with a manual that explains which Esc sequence
  477.   causes which action on the printer. But there happen weird things when
  478.   you try to send these sequences to your printer, either it does
  479.   nothing, or it does something completely different. There is a reason,
  480.   the Amiga printer drivers. These drivers are made in a way that they
  481.   only understand a certain set of `ANSI Esc sequences', not the special
  482.   ones defined (differently) by the various printer manufacturers. The
  483.   purpose is that every application on the Amiga just uses this one
  484.   standard set of control sequences and this way doesn't need to know
  485.   which printer is actually connected. The printer driver then translates
  486.   these standard sequences into the special sequences a certain printer
  487.   understands.  A list of the available ANSI Esc sequences is found in
  488.   the current Workbench manuals (or older AmigaDOS manuals). Now if you
  489.   want to issue a control sequence to the printer that's not available as
  490.   an ANSI command, you have two possibilities to achieve this:
  491.     1. Bypass the printer driver (that would unsuccessfully try to
  492.        interpret the sequence) and send your output *only* during this
  493.        sequence to `PAR:' (or `SER:', respectively). For this you have to
  494.        close and open printer output channels very often which is rather
  495.        tedious, and you have to know where (`PAR:' or `SER:') your
  496.        printer is connected.
  497.   
  498.     2. Use a special ANSI sequence, made exactly for this case:
  499.                 `Esc[<n>"<x>'
  500.        where `<n>' is the decimally typed number of bytes in the string
  501.        `<x>', which actually contains your special printer sequence. This
  502.        ANSI sequence tells the printer driver to not interpret or
  503.        translate the next `<n>' bytes.
  504.           But both methods have one big disadvantage when used in an
  505.   application program: You lose the printer independency! If you stick to
  506.   ANSI sequen- ces, you can output to any printer on earth, as long as
  507.   there is an Amiga printer driver for it. If you start to use special
  508.   control sequences, your program will be tied to this single printer
  509.   model and will not be usefull for any other (or you would have to
  510.   provide some dozen new printer drivers for your application).
  511.   
  512.      Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
  513.   
  514.   3.7 Is it possible to use AmigaBasic on the A1200?
  515.   ==================================================
  516.   
  517.      We heard conflicting reports about AmigaBasic on the A1200: While I
  518.   said that you can work sufficiently with it, others said that this
  519.   isn't possible, as AmigaBasic crashes on the slightest little error.  I
  520.   couldn't reproduce this.
  521.   
  522.      Now I can. It depends on the setting in the Sound Prefs editor. When
  523.   you activate a sound there, this conflicts with sound that AmigaBasic
  524.   tries to produce by hand and obviously not quite the correct way itself.
  525.   
  526.      Easy solution: To work with AmigaBasic on the A1200, just
  527.     1. Switch off sound output in the Sound prefs editor.
  528.   
  529.     2. On the A4000 (as well as on an A1200 with Fast Mem expansion (1))
  530.        you  additionally need to run NoFastMem.
  531.   
  532.     3. Better avoid SUBs and use conventional GOSUBs instead, then the
  533.        compatibility with newer processors will be higher.
  534.   
  535.      Dr. Peter Kittel, peterk@cbmger.de.so.commodore.co
  536.   
  537.      ---------- Footnotes ----------
  538.   
  539.      (1)  If you have a turbo board
  540.   
  541.   3.8 How do I localize my program?
  542.   =================================
  543.   
  544.      Suggest, you want to write a `HelloLocalWorld.c'. Your final program
  545.   will look like this:
  546.   
  547.            #include "HelloLocalWorld_Cat.h"
  548.            #include <exec/clib_protos.h>
  549.        
  550.            struct Library *LocaleBase;
  551.        
  552.            void main(int argc, char *argv[])
  553.        
  554.            {
  555.                /* Open the locale.library. No kill, if not successfull.
  556.                   (Just use the builtin catalog strings instead.) Note, that
  557.                   we open locale.library here, even if our compiler supports
  558.                   AutoOpening.
  559.                */
  560.                LocaleBase = OpenLibrary("locale.library", 38);
  561.                OpenHelloLocalWorldCatalogs(NULL, NULL);
  562.        
  563.                printf(GetString(MSG_Hello));
  564.        
  565.                CloseHelloLocalWorldCatalog();
  566.                if (LocaleBase) CloseLibrary(LocaleBase);
  567.            }
  568.   
  569.      The routine GetString checks, if the wished catalogs are available
  570.   and returns a pointer to either the builtin string or the catalog
  571.   string. (In my case the german string.)
  572.   
  573.      You see, the main difference besides the minor opening and closing
  574.   stuff (OpenLibrary, OpenHelloLocalWorldCatalogs, ...) is to replace
  575.   strings with a function call. Hence we need a file
  576.   `HelloLocalWorld_Cat.c', which holds OpenHelloLocalWorld, GetString,
  577.   CloseHelloLocalWorld and the builtin strings (this could be an array,
  578.   where
  579.                array[MSG_Hello] = "Hello, local world.\n";
  580.   
  581.   is defined) and an include file `HelloLocalWorld_Cat.h', which defines
  582.   the message ID's like MSG_Hello. You don't need to know, how these files
  583.   work internally, especially you don't need to know `locale.library'!
  584.   
  585.      There are some catalog generators (in what follows: CGs) available
  586.   (`CatComp', for devlopers only, `KitCat', german docs only, `MakeCat',
  587.   which I don't know and `FlexCat', which I  recommend, because it is
  588.   most flexible in the generated source and supports catalogs on 2.0 and
  589.   any language, even Amiga-E, Cluster, Pascal, ... and besides that: I'm
  590.   the author ;-) are tools, that create  HelloLocalWorld_Cat.h,
  591.   HelloLocalWorld_Cat.c and the real catalogs for you. (The above code
  592.   might differ slightly between the different CGs.) (See Aminet, directory
  593.   `dev/misc'.)
  594.   
  595.      Of course they need to know how to use them. First create a so-called
  596.   `catalog-description' file. This could look like this:
  597.            ; Lines beginning with a semicolon are comment lines.
  598.            # language english
  599.            ; the language of the builtin strings
  600.            # version 0
  601.            ; the catalog version (0 = any)
  602.            MSG_Hello (1/15/30)
  603.            Hello, local world
  604.   
  605.   Any string is defined by a line like the last two lines above: MSG_Hello
  606.   is the message-ID, (1/15/30) says, that the value of MSG_Hello should be
  607.   1 (you may omit this, in which case just the next free number is used)
  608.   and the string must not be shorter than 15 characters or longer than 30
  609.   characters. (These may be omitted too.)
  610.   
  611.      Now write your program. Once you are ready, use the CGs to create a
  612.   so-called catalog translation file. (One for any language different than
  613.   the builtin.) In my case (german) this could look like this:
  614.            ; Lines beginning with a semicolon are comment lines.
  615.            ## language deutsch
  616.            ; the catalog language (german)
  617.            ## version $VER: Deutsch.catalog 1.0 (22.12.93)
  618.            ; the catalog files version string
  619.            MSG_Hello
  620.        
  621.            ; Hello, local world
  622.   
  623.   Note the empty line after the message ID. (The arguments of ## language
  624.   and ## version would be missing as well.) You have to fill in the
  625.   german strings here. Again using the CGs you create a catalog file from
  626.   this. Additionally note, that no informations on the strings ID or
  627.   length are behind MSG_Hello.  They are taken from the catalog
  628.   description file.
  629.   
  630.      Once you change the program (adding strings, changing the string
  631.   length) you change the catalog description as well, use the CGs in the
  632.   same way to update the catalog translation and hence the catalogs.
  633.   
  634.   3.9 How to obtain a pointer to a console's window
  635.   =================================================
  636.   
  637.      The following function returns the window pointer of a CON window.
  638.   It can be executed safely under all versions of the Amiga's OS.
  639.   
  640.          struct Window *getConWindowPtr(BPTR fh)
  641.           {
  642.           struct Window *w;
  643.           struct FileHandle *cfh;
  644.           struct StandardPacket *sp;
  645.           struct InfoData *id;
  646.           struct MsgPort *mp;
  647.        
  648.           w = NULL;
  649.        
  650.           if((cfh = BADDR(fh))->fh_Type != NULL)
  651.            {
  652.            if(sp = AllocMem(sizeof(struct StandardPacket),
  653.                             MEMF_PUBLIC | MEMF_CLEAR))
  654.             {
  655.             if(id = AllocMem(sizeof(struct InfoData),
  656.                              MEMF_PUBLIC | MEMF_CLEAR))
  657.              {
  658.              if(mp = CreatePort(NULL, 0))
  659.               {
  660.               sp->sp_Msg.mn_Node.ln_Name = (char *)&sp->sp_Pkt;
  661.               sp->sp_Pkt.dp_Link         = &sp->sp_Msg;
  662.               sp->sp_Pkt.dp_Port         = mp;
  663.               sp->sp_Pkt.dp_Type         = ACTION_DISK_INFO;
  664.               sp->sp_Pkt.dp_Arg1         = MKBADDR(id);
  665.        
  666.               PutMsg(cfh->fh_Type, &sp->sp_Msg);
  667.               (void)WaitPort(mp);
  668.               (void)GetMsg(mp);
  669.        
  670.               if(sp->sp_Pkt.dp_Res1)
  671.                w = (struct Window *)id->id_VolumeNode;
  672.        
  673.               DeletePort(mp);
  674.               }
  675.              FreeMem(id, sizeof(struct InfoData));
  676.              }
  677.             FreeMem(sp, sizeof(struct StandardPacket));
  678.             }
  679.            }
  680.        
  681.           return w;
  682.           }
  683.   
  684.      Notes:
  685.      * Accessing a console's window directly may interfere with operations
  686.        performed by the CON handler. Be careful!
  687.   
  688.      * To obtain the window pointer of a CLI's console, pass the
  689.        FileHandle returned by Open("*", MODE_OLDFILE) to the above
  690.        function.
  691.   
  692.      * The result of the above function may well be NULL, e.g. in case of
  693.        an AUX handler or if an AUTO CON handler is unable to open its
  694.        window.
  695.   
  696.      * Sending an ACTION_DISK_INFO packet to an AUTO CON handler (2.0+)
  697.        causes its window to lose its special AUTO properties (i.e. it can
  698.        no longer be closed at any time by clicking on its Close gadget),
  699.        as the window pointer returned in id_VolumeNode must remain valid
  700.        from now on.
  701.   
  702.      * All in all: Don't use this function. :-)
  703.   
  704.      For more information, please refer to pages 273, 276, 435, 463, 485,
  705.   and 629 in "The Amiga Guru Book" (see Manuals).
  706.   
  707.      Ralph Babel, rbabel@babylon.pfm-mainz.de
  708.   
  709.   3.10 What are pragmas?
  710.   ======================
  711.   
  712.      Pragmas are special preprocessor commmands which control certain
  713.   features of a C-compiler. Two problems arise when using pragmas:
  714.     1. Pragmas are compiler specific. You cannot expect that one compiler
  715.        will understand pragmas of another compiler, even if both run on
  716.        the Amiga.
  717.   
  718.     2. You are not guaranteed that a compiler ignores pragmas, that he
  719.        doesn't understand. Even more: It might not help, to use something
  720.        like this:
  721.                 #ifndef MY_COMPILER
  722.                 #pragma DoAnything
  723.                 #endif
  724.   
  725.   A workaround is to put pragmas in a special include file (BTW, the same
  726.   holds true for statements like #asm (Aztec-C) or #extern (C++) and
  727.   replace the above with
  728.            #ifndef MY_COMPUTER
  729.            #include <mypragmas.h>
  730.            #endif
  731.   
  732.      But what do pragmas on the Amiga? The most common usage (not the
  733.   only, but most meant when talking about pragmas) is to tell the
  734.   compiler about how to call library functions: Simple C functions expect
  735.   their arguments on the stack, but library functions want their
  736.   arguments in special processor registers and additionally the `library
  737.   base' in register a6. Lets have a look at a pragma command of the
  738.   Aztec-Compiler.
  739.            #pragma amicall(SysBase,0xd2,FreeMem(a1,d0))
  740.   
  741.   This tells the compiler to put the first argument of FreeMem in register
  742.   a1, the second in register d0 and the value of the variable SysBase in
  743.   register a6. Maxons pragmas look the same, Dice pragmas and SAS pragmas
  744.   look a bit more complicated;
  745.            #pragma libcall SysBase FreeMem d2 0902
  746.   
  747.   Here d2 is (like 0xd2 above) the `library vector offset' (see below),
  748.   the digits 09 are codes for the argument register in reversed order
  749.   (Register codes are 0=d0, 1=d1, .., 8=a0, 9=a1, a=a2, ..), the
  750.   following 0 is the result's registerä(always d0))and the final digit 2
  751.   is the number of arguments.
  752.   
  753.      A command `FreeMem(fib,sizeof(*fib);' could produce the following
  754.   code, if the compiler has seen a pragma statement like above:
  755.            move.l  _fib,a1
  756.            move.l  260,d1        ; sizeof(struct FileInfoBlock)
  757.            move.l  _SysBase,a6
  758.            jsr     -0xd2(a6)       ; 0xd2 = _LVOFreeMem
  759.   
  760.   Calling FreeMem in that way is shorter and faster than pushing the
  761.   arguments on the stack, calling a function _FreeMem which would do just
  762.   the same like the above code by pulling the arguments from the stack.
  763.   
  764.      The best way to use pragmas is to include statements like the
  765.   following in your program:
  766.            /*    Get the prototype for the function; note, that this is    */
  767.            /*    compiler independent.                    */
  768.            #include <clib/exec_protos.h>
  769.        
  770.            /*    Get the pragma; compiler dependent, but most pragmas    */
  771.            /*    are in files with the same name.
  772.            #ifdef AZTEC_C
  773.            #include <pragmas/exec_lib.h>
  774.            #endif
  775.            #if defined(__SASC) || defined(_DCC) || defined(__MAXON__)
  776.            #include <pragmas/exec_pragmas.h>
  777.            #endif
  778.            #ifdef __GNUC__
  779.            #include <inline/exec.h>
  780.            #endif
  781.   
  782.   The above example can be compiled on all these compilers and produce the
  783.   best code.
  784.   
  785.      A final question arises: How to get the pragmas? Most compilers have
  786.   them included. However, sometimes you want to produce pragmas for
  787.   yourself, for example if you are using new libraries or new versions
  788.   with additional functions. In that case you can produce them from the
  789.   so-called `FD' files which should be a part of the developer docs of
  790.   the library. (The NDU has a directory FD which contains FD files for
  791.   all libraries and devices of the OS. see Includes) Most compilers have
  792.   a utility with the name `fd2pragma' or similar included which can do
  793.   that for you. A freely distributable version which can produce pragmas
  794.   for Aztec, Dice, SAS and Maxon as well as LVO files for assembler and
  795.   stub routines for the tag versions is available on Aminet
  796.   (`dev/misc/fd2pragma2_0.lha' and on the Fish CDs.
  797.   
  798.   3.11 Where do I find the function xxx?
  799.   ======================================
  800.   
  801.      First ensure, that the function is really missing: For example
  802.   floating point functions are in a special link library and you need a
  803.   linker option like `-lm' to include it into your program. Another
  804.   possibility would be that you are using a library function and didn't
  805.   notice it. This might lead to a missing library base, `IntuitionBase'
  806.   for example. In that case just put something like
  807.            struct Library *IntuitionBase;
  808.   
  809.   somewhere in the global part of your program. (Don't forget to call
  810.   OpenLibrary() and CloseLibrary! :-)
  811.   
  812.      However, you could as well use a function which really isn't present
  813.   in your library at all. If you have, for example, an amiga.lib from 2.0
  814.   you would hardly find the locale functions or the pool memory
  815.   functions. (1) Best solution is to get the NDU (see Includes), but you
  816.   probably don't want to wait for it. In that case you have to find what
  817.   kind of function you are missing.
  818.      * Simple library functions (Examples: `exec/AllocPooled',
  819.        `locale/OpenCatalogA') can be called with pragmas. However, you
  820.        need informations on the name of the library base and where to put
  821.        the arguments. See Pragmas.
  822.   
  823.      * Tag functions are mostly just stub functions which call library
  824.        functions. If you have, for example, `dos/AllocDosObject' which
  825.        expects a constant and a pointer to an array of tags, you have the
  826.        varargs version `AllocDosObjectTags' which expects tags on the
  827.        stack as well! Just create the following function:
  828.                 #include <clib/dos_protos.h>
  829.                 #include <pragmas/dos_pragmas.h>    /*  Probably wrong name */
  830.             
  831.                 void *AllocDosObjectTags(ULONG objtype, Tag tag1, ...)
  832.                 { return(AllocDosObject(objtype, (struct TagItem *) &tag1);
  833.                 }
  834.   
  835.      * Some functions still remain: Amiga.lib has some functions which
  836.        are really doing valuable things and not just call a library: The
  837.        BOOPSI functions (`DoMethod', `DoSuperMethod') the memory pool
  838.        functions (`LibAllocPooled', `LibCreatePool', which are
  839.        replacements of 3.0 functions). The only way to replace these is
  840.        to get equivalents. The AmigaFAQ archive contains some of them
  841.        (DoMethod, DoSuperMethod and HookEntry) in the `programmer'
  842.        directory as well as the most common pragma files and some
  843.        examples of varargs functions. See Amiga-FAQ Archive.
  844.   
  845.      ---------- Footnotes ----------
  846.   
  847.      (1)  This problem arises most frequently for owners of Aztec which
  848.   is no longer supported and owners of Dice, which has sometimes rather
  849.   incomplete libraries. I own both ...
  850.   
  851.   4 Applications
  852.   **************
  853.   
  854.      This chapter offers informations about major Applications.
  855.   
  856.   4.1 Text Editors
  857.   ================
  858.   
  859.      Text Editors are programs allowing to enter and edit unformatted
  860.   text.  Generally, this means text that is meant to be manipulated by
  861.   machine, rather than human. Programmers use these to enter the text for
  862.   compilers.  Since UNIX machines don't typically have word processors,
  863.   most text processing starts with a text editor, then is filtered
  864.   through a page layout system (TeX, for example) to produce attractive
  865.   paper results.
  866.   
  867.   *Commercial Products*
  868.        CygnusEd Professional and TurboText seem to be the main contenders
  869.        in the professional realm. The Fred Fish disks contain dozens of
  870.        other shareware text editors. A demo version of TurboText is on
  871.        Fish disk 445.  A very old demo of CygnusEd is on Fish disk 95
  872.        (testament to its lasting-power). In the following some freely
  873.        distributable editors will be discussed.
  874.   
  875.   *Emacs*
  876.        Gnu Emacs (the "G" is not silent) comes from Unix and is probably
  877.        the king of editors - it's huge (about 1 Megabyte), feature-packed
  878.        (it does windows and even contains a game!) and extensible (if you
  879.        know lisp you can write new emacs functions and bind them to any
  880.        key combination).  On the other hand, it may be too huge, its
  881.        feature-ladenness is imposing, and its extensibility often means
  882.        you can't use someone else's emacs configuration. Source: Aminet
  883.        (directory `util/gnu').
  884.   
  885.   *Vi*
  886.        The leaner, less configurable, non-extensible cousin to gnu emacs
  887.        is vi (pronounced "vee eye"). Unix people like vi especially
  888.        because you find it on *any* Unix machine. What you choose is
  889.        personal preference, and will mark you for life. Vim is a good vi
  890.        for the amiga, and is on Fish disk 591 or in the `util/gnu'
  891.        directory of Aminet.
  892.   
  893.   *DME*
  894.        Many Amiga programmers like DME. It's fast, fully configurable;
  895.        menus may be created and any key may be mapped. It's much easier
  896.        to learn DME than than Emacs or Vi. There are three different
  897.        versions: AmokEd, DME and XDME. It's a matter of opinion which you
  898.        prefer. (Oberon and Modula programmers like AmokEd because it's
  899.        written in Oberon and supports AmiOberon error messages, C
  900.        programmers like DME or XDME.) Sources: Aminet (directory
  901.        `util/edit'), Fish disk 776 (XDME) and 749 (AmokEd), AMOK 90.
  902.   
  903.   4.2 What word processors are there?
  904.   ===================================
  905.   
  906.      A word processor is the typical application for writing notes,
  907.   letters or reports on a computer. Unless you prepare newsletters on a
  908.   weekly basis, your word procesor is probably your workhorse program.
  909.   Thus choosing one you are comfortable with determines how comfortable
  910.   you are with your computer. Word processors can offer a variety of
  911.   features, and many can approach the sophistication required for Desktop
  912.   Publishing (see DTP) but no one uses them for programming, for which
  913.   text editors are more suited.
  914.   
  915.      One distinguishes between Wysiwyg programs (What you see is what you
  916.   get) and page layout languages. Wysiwyg programs should be fast,
  917.   comfortable and easy to use. Most people prefer them. The alternative
  918.   is an approach that works similar to compilers. You feed text files to
  919.   a a program that produces the layout which may be previewed on screen
  920.   or printed. LaTeX takes this approach. See TeX. Lout is another such
  921.   system which seems smaller, easier to learn and has full documentation
  922.   included, but it is nonstandard.  Lout produces Postscript output. (I
  923.   don't know if this is an advantage or disadvantage. ;-) See Postscript.
  924.   Both programs are freely distributable.
  925.   
  926.      There are a lot of wysiwyg programs, but only commercial products:
  927.   Final Copy II, Wordworth, Word Perfect, AmiWrite, Beckertext II, Maxon
  928.   Word and many others. I don't dare to recommend any. ALl I can say is:
  929.   Give yourself time to make a selection.
  930.   
  931.   4.3 Desktop Publishing
  932.   ======================
  933.   
  934.      These programs offer features lacking in word processors, usually
  935.   tailored to flexible arrangement of text, but often don't provide all of
  936.   the text manipulation that a good word processor provides. The best
  937.   desktop publishing programs strive to provide the features of both,
  938.   just as the best word processors strive to provide the features of
  939.   desktop publishing programs. Microsoft Word (Mac, PC) is a good example
  940.   of a word processing program that offers many page layout feature.
  941.   Framemaker (UNIX, Macintosh, DOS, etc.) is an example of a desktop
  942.   publishing system that offers most needed word processing functions. As
  943.   yet, no Amiga program has bridged the gap, though the main word
  944.   processors are coming close. (On the other hand, even many
  945.   sophisticated programs don't support typesetting mathematics, tables,
  946.   producing bibliographies, indexes, or cross-references. The page layout
  947.   languages do, and programs like Frame are improving their support of
  948.   such features.) Unless you need to prepare fancy newsletters or
  949.   promotional literature, a word processing program is probably enough.
  950.   See Word Processors.
  951.   
  952.      There are not yet any freely distributable wysiwyg desktop publishing
  953.   systems. Commercial products are ProPage and PageStream. They have been
  954.   playing leapfrog for the past few years. It appears that PageStream 3.0
  955.   is about to leap ahead. A more detailed description of these products
  956.   and their differences is welcome. Both programs' list prices are $299.
  957.   Student discounts are available (approx 40% discount.)
  958.   
  959.   4.4 What is TeX and where can I get it?
  960.   =======================================
  961.   
  962.      TeX is a very powerful wordprocessing system. It can display
  963.   mathematical formulas or complex tables as well as function graphs,
  964.   creates indices, contents and many other things. Its greatest advantage
  965.   is that it is freely distributable (TeX, not the previewers and the
  966.   printer drivers!) and that you find TeX all over the world on every
  967.   computer family. Its greatest disadvantage is that it isn't very handy
  968.   (works similar to a compiler) and it isn't wysiwyg. But many people
  969.   like it. (BTW: This document is written using TeX. 8-) See Word
  970.   Processors.
  971.   
  972.      There are two major implementations on the Amiga. The first one,
  973.   Amiga-TeX, from Thomas Rockicki and Radical Eye software is commercial.
  974.   It is said to be excellent and his owners seem to be very satisfied.
  975.   But it costs at least 200$.
  976.   
  977.      I recommend PasTeX, a freely distributable version. People seem to
  978.   have problems installing PasTeX, especially the font loading and
  979.   generation (It's a quite complex program.) but I did not here anyone
  980.   upset once it was installed. (A friend with knowledge of TeX helps
  981.   immensely.) A few words should be said what you need:
  982.      * 5 disks containing the TeX-compiler itself
  983.   
  984.      * 2 disks containing MetaFont
  985.   
  986.      * Nothing more Many people ask for fonts. They are included in the
  987.   MetaFont-package and can get compiled by you. All you need to do is
  988.   setting up your TeX-system in the right way which is described in the
  989.   documentation. Please note that the PasTeX disks are compressed using
  990.   the program Zoom. (see Endings) Sources: FTP at `ftp.uni-passau.de',
  991.   directory `/pub/amiga/tex/PasTeX1.3'.
  992.   
  993.   4.5 Are there any Postscript interpreters?
  994.   ==========================================
  995.   
  996.      PostScript is a programming language designed to be used to describe
  997.   printing on pages. Apple helped make PostScript popular by selling
  998.   printers with built in PostScript interpreters. Many programs have
  999.   evolved to produce PostScript programs as their output, making
  1000.   PostScript the lingua franca of printing. Until recently, in order to
  1001.   print a PostScript file, you had to have a relatively expensive laser
  1002.   printer. The development that changed this was the software PostScript
  1003.   interpreter. These programs allow your computer to interpret PostScript
  1004.   programs, and produce the matrix of dots to send to your normal
  1005.   graphics printer.
  1006.   
  1007.      One of the benefits of PostScript is that it is resolution
  1008.   independent.  What this means is that it can support the highest
  1009.   resolution of your device - and that you can reasonably preview
  1010.   PostScript on a low resolution screen.
  1011.   
  1012.      There are two free PostScript interpreters for the Amiga. Post and
  1013.   Ghostscript. Post comes as an Amiga shared library along with front
  1014.   ends for previewing to the screen and printing. This structure allows
  1015.   others to write programs that can show PostScript images on screen. In
  1016.   fact, AmigaTeX uses Post's library to support incorporation of
  1017.   PostScript into documents.  Ghostscript similarly comes in two
  1018.   programs, but not as a shared library.  Ghostscript is the rendering
  1019.   engine, and Ghostview is the front end.  Sources: Aminet (directorys
  1020.   `text/print' and `text/dtp'), Fish disk 669
  1021.   
  1022.   5 How about Graphics?
  1023.   *********************
  1024.   
  1025.      Graphics is one of the major strengths of the Amiga. Why don't we
  1026.   have more answers here? :-(
  1027.   
  1028.   5.1 What are chunky and planar displays?
  1029.   ========================================
  1030.   
  1031.      Simply put, the terms `chunky' and `planar' (short for `bitplanar')
  1032.   refer to different ways of storing graphics information in a computer's
  1033.   memory. They are rather easy to understand, as far as things go, but
  1034.   incredibly difficult to explain:
  1035.   
  1036.      Computer images are arranged as a grid of pixels, each of which can
  1037.   be thought of as a number representing the color number of the pixel,
  1038.   sort of like a paint-by-numbers scheme.  For example, here's a
  1039.   simplified example image, in four colors:
  1040.   
  1041.           00302132
  1042.   
  1043.      The Amiga stores this image in a `bitplane' mode. That is, it is
  1044.   represented by several planes of bits (binary digits, 1s or 0s). This
  1045.   is a four-color image, so each color number could be represented by two
  1046.   bits.  Therefore there are two bitplanes:
  1047.   
  1048.           00100110    Here's bitplane 0
  1049.           00101011    And here's bitplane 1
  1050.           --------    Now, let's add them up, binary style:
  1051.           00302132
  1052.   
  1053.      Which is the final image. If the image was in two dimensions, it
  1054.   would truly be composed of bit planes. However, I'd need three
  1055.   dimensions to show multiple bitplanes overlayed, and therefore for
  1056.   simplicity we're working in one dimension (which is all we need).
  1057.   
  1058.      Now, there's another way of storing this image.  How about if we
  1059.   localize the bit data in little chunks?
  1060.   
  1061.           00 00 11 00 01 10 11 01 = 00302132
  1062.   
  1063.      This is the principle of the `chunky' pixel mode.
  1064.   
  1065.      Both methods of image storage are perfectly logical, and no one can
  1066.   say that one is better than the other. However, there are certain
  1067.   technical aspects which cause certain advantages and disadvantages.
  1068.   
  1069.      First, if you've seen colored text scroll on your Amiga, you know
  1070.   there is a bit of "flicker" that arises. Specifically, what happens is
  1071.   that while the text is scrolling, its color temporarily changes to
  1072.   something completely different. What's happening is that the computer's
  1073.   moving several bitplanes of data while the raster (monitor electron
  1074.   gun) is sweeping across the screen. What that means is that, if the
  1075.   raster catches the data while it's being moved, you can end up with some
  1076.   bitplanes being moved and some not. What if we filled bitplane 1 in the
  1077.   example above with 0s? Instantly all the 3s become 1s, and the 2s
  1078.   become 0s! This is what causes "flicker" when certain colors are
  1079.   scrolled. By contrast, if a chunky pixel display is caught while
  1080.   scrolling, all we see is a partially-scrolled image; the colors are
  1081.   preserved (since their units are the small ones).
  1082.   
  1083.      That's a disadvantage to planar pixels, but what about chunky pixels?
  1084.   Well, recall that a computer organizes information in terms of 8 bit
  1085.   bytes. These groups are static; you cannot decide to all of a sudden
  1086.   organize data in terms of three bytes or something! Therefore, when
  1087.   using chunky pixels, things get complicated if we decide to use a
  1088.   nonconvenient number of bits per pixel. In practice, the 8-bit
  1089.   (256-color) mode, and 24-bit (16 million color) modes are the most
  1090.   common candidates for chunky pixel displays.
  1091.   
  1092.      Finally, certain effects can be accomplished with the different
  1093.   systems.  Bitplanar mode is particularly useful for things like shadows
  1094.   (where an extra bitplane is set with 1s instead of 0s), and chunky mode
  1095.   is great for perspective and "mapping" (since the data for each pixel is
  1096.   localized in a single "chunk"). The latter advantage makes chunky pixel
  1097.   mode really great for games, and is what made Wolfenstein 3-D possible.
  1098.   
  1099.      We all know that Amigas use the bitplane system for storing images.
  1100.   However, the Macintosh and PC(VGA) both use chunky pixel modes. While
  1101.   we can optimize our RAM usage with "bizarre" modes like 8- and
  1102.   128-color, they gain the advantages of non-flicker scrolling, and the
  1103.   programming simplicity of just writing a byte where you want the pixel
  1104.   to go.
  1105.   
  1106.      The difference between the two modes becomes problematic in things
  1107.   like emulation. EMPLANT has a "chunky to planar" routine which it uses
  1108.   to convert a Macintosh display into an Amiga one. "Chunky to planar"
  1109.   routines are also useful for getting chunky-inclined things to run on
  1110.   Amigas (see TMAPDemo, rotdemo). On a side note, there was some
  1111.   confusion as to what EMPLANT used the MMU for with regard to chunky to
  1112.   planar. The MMU itself is incapable of performing the algorithm for the
  1113.   conversion; rather, it is used to detect what portions of the display
  1114.   memory are updated from the Mac side, and therefore the processor is
  1115.   saved from having to perform the chunky to planar conversion for the
  1116.   entire display.
  1117.   
  1118.      I sincerely hope that helped clear up most of the mystery concerning
  1119.   the terms "Chunky" and "Planar"!
  1120.   
  1121.      (Joseph Luk, jluc@eis.calstate.edu)
  1122.   
  1123.   5.2 What is doublebuffering?
  1124.   ============================
  1125.   
  1126.      Don't be ashamed if you haven't a clue as to what this is. It's
  1127.   rather simple, really. Imagine you wanted to animate something by
  1128.   drawing out each frame. Now imagine you had only one piece of paper.
  1129.   Even if you drew pretty fast, it would be difficult to see what the
  1130.   animation looks like because you'd have to erase the frame you just
  1131.   drew, in order to draw the next one!
  1132.   
  1133.      What if you had two pieces of paper? Why, then, you could see the
  1134.   difference between two adjacent frames. First you'd draw your first
  1135.   frame on the first piece of paper, then you'd draw the second frame on
  1136.   the other piece.  Then you'd erase the picture on the first piece of
  1137.   paper, and draw in the third frame. Then you'd erase the picture on the
  1138.   second piece of paper, and draw in the fourth frame, and so forth.
  1139.   
  1140.      This is the principle of doublebuffering. The computer shows you the
  1141.   picture it just drew, then turns around and draws the next one. It then
  1142.   swaps the picture in front of you with the one it just drew, and
  1143.   repeats the process. The result is a smooth animation, because you
  1144.   never need to see the computer draw; all you see is each finished
  1145.   product.
  1146.   
  1147.      (Joseph Luk, jluc@eis.calstate.edu)
  1148.   
  1149.   5.3 What monitors will work on my Amiga 1200/4000?
  1150.   ==================================================
  1151.   
  1152.      Monitors can be classified after the horizontal scan frequency they
  1153.   require.  TVs, as well as C='s 1084 monitor, need frequencies around 15
  1154.   kHz. VGA/SVGA need approx. 30 kHz. Multisync monitors can take many
  1155.   frequencies.
  1156.   
  1157.      In short: You can use any monitor you want with an A1200. BUT:
  1158.   
  1159.      - If you use a regular VGA/SVGA monitor, you can only use a few
  1160.        display modes (like DblPAL, DblNTSC and/or Productivity). I.e.
  1161.        (320|640) x (256|512|1024) for DblPAL. This is great for Workbench
  1162.        and all "serious" utilities (DTP etc), but don't expect any games
  1163.        to work... they don't use your preferences, just take over the
  1164.        machine and assume a 15 kHz monitor. Also, you cannot utilize the
  1165.        "Early Startup Control" screen (you know, disable cache, and that
  1166.        stuff), which also requires a 15 kHz monitor. Furthermore, VGA
  1167.        monitors don't have speakers. And the VGA-type modes don't support
  1168.        Genlocks. But for a lot of "serious" work, a VGA monitor is quite
  1169.        adequate.
  1170.   
  1171.      - You already know what happens with a 15 kHz monitor; the
  1172.        flickering in Interlace mode. A small tip: Try to use NTSC instead
  1173.        of PAL. This increases the refresh rate from 25 Hz to 30 Hz, at
  1174.        the expense of lower vertical resolution (482 lines maximum). The
  1175.        NTSC and PAL modes aren't as bad as many people think. If your
  1176.        monitor has a lot of phosphorous (long afterglow), PAL Laced can
  1177.        be quite OK, and it gives you a resolution of 1448x566 in
  1178.        SuperHiRes. That's the highest resolution currently supported on
  1179.        AGA Amigas, in _any_ display mode.
  1180.   
  1181.      - A Multisync gives you the best of both worlds. The new 1940 and
  1182.        1942 monitors from C= are quite OK, although rather cumbersome to
  1183.        use... The h/v size and offset must be set manually each time you
  1184.        switch display mode.  (1)
  1185.   
  1186.      For a VGA/SVGA or Multisync monitor, you'd need a little shiny box
  1187.   which gives you the standard 15-pin "D" connector. It costs around $15.
  1188.   
  1189.      There are other alternatives... like the "AmiVGA" box ($50 or so),
  1190.   which I think is a cheapo version of the Flicker Fixer. (But it's
  1191.   really a shame to use this on an AGA Amiga.)
  1192.   
  1193.      Also, you can get a VGA monitor, and hook up your TV to the
  1194.   composite or RF port on the Amiga - one monitor for games, one for
  1195.   serious stuff.
  1196.   
  1197.      (Per Espen Hagen, per.e.hagen@ffi.no)
  1198.   
  1199.      ---------- Footnotes ----------
  1200.   
  1201.      (1)  A patch is available on Aminet for Kickstart 3.0 to do this
  1202.   without manual actions in the file `os30/util/Monitor30Patch.lha'.
  1203.   
  1204.   5.4 How do I switch between PAL and NTSC?
  1205.   =========================================
  1206.   
  1207.      PAL and NTSC are two different video standards, the former being
  1208.   European, and the latter being American. PAL has a slightly taller
  1209.   screen (256 lines non-interlaced, non-overscanned) as opposed to NTSC
  1210.   (200 lines), so if you see the bottom portion of a program's screen
  1211.   getting cut off on your American machine, chances are the program was
  1212.   written for PAL, and is running on your shorter NTSC screen. PAL and
  1213.   NTSC differences are somewhat less important to European users; since
  1214.   their machines default to PAL, running an NTSC program is no more than
  1215.   a minor annoyance having the screen only appear in the top portion of
  1216.   the display.
  1217.   
  1218.      Therefore, for us NTSC folks, switching into PAL mode becomes
  1219.   important to avoid loss of some picture on Euro Demos, etc.
  1220.   
  1221.      First, the most common misconception about switching between PAL and
  1222.   NTSC is that you need a Multiscan or special monitor for such a purpose.
  1223.   Not so! Just about any monitor can handle the minor signal difference
  1224.   between PAL and NTSC (50Hz vertical refresh versus 60Hz). The 108x,
  1225.   19xx, and 20xx series, and even most TVs, can display both PAL and NTSC.
  1226.   Sometimes it is necessary to perform minor tweaking of vertical hold
  1227.   and/or v. size on your monitor to achieve full display, though this is
  1228.   trivial.
  1229.   
  1230.      What IS needed to switch between PAL and NTSC in software, is a
  1231.   "Fatter" (1MB) Agnus or better. If your system has more than 512K of
  1232.   CHIP RAM (use the avail command to find out) you have this chip. If you
  1233.   do not, ou can still construct a hardware switch (see below).
  1234.   
  1235.      The following directions assume you're an NTSC user who wants to
  1236.   switch into PAL mode, but the procedure for going from PAL to NTSC is
  1237.   much the same.
  1238.   
  1239.      The most common use of switching into PAL is for self-booting games,
  1240.   demos, etc.  The best way to accomplish this on pre-3.0 systems is to
  1241.   use Chris Hames' Degrader program (most recent version: 1.30). Once you
  1242.   have procured this program, the switch is as simple as selecting
  1243.   "50Hz", and "50Hz System", then installing the program's ROMTag (little
  1244.   program that runs at boot-time) by pressing the "Survive Reset(s)"
  1245.   button.
  1246.   
  1247.      AmigaDOS 3.0 added a PAL/NTSC switch feature to its Boot Menu, and
  1248.   all you need to do in order to access this is hold down both mouse
  1249.   buttons as the computer boots. Select Display Options, Display
  1250.   Mode/PAL, and then Boot. If the program still fails to go into PAL mode
  1251.   (Zool is one I've found), you may wish to get Degrader anyway and try
  1252.   that.
  1253.   
  1254.      Software PAL/NTSC switching is easy and painless. Some people have
  1255.   gone even further by installing hardware PAL/NTSC switches. This
  1256.   results in a system which even the most nasty hardware-banging programs
  1257.   can't bring to its original configuration (if it has been switched).
  1258.   The procedure is simple - most Amigas have jumpers already - but beyond
  1259.   the scope of this document.
  1260.   
  1261.      Therefore, if your screen is too short or cut off, seek the different
  1262.   screen mode. You'll "see new horizons", literally!
  1263.   
  1264.      (Joseph Luk, jluc@eis.calstate.edu)
  1265.   
  1266.      (1)
  1267.   
  1268.      ---------- Footnotes ----------
  1269.   
  1270.      (1)  PAL/NTSC switching with a MultiSync monitor is possible on 2.0+
  1271.   and easily accomplished by moving the PAL monitor type to (or NTSC, as
  1272.   applicable, I have them both in) the Devs/Monitors drawer (from the
  1273.   Storage/Monitors drawer), reboot, then go into the Prefs drawer and
  1274.   select the ScreenMode program. You will see at least two PAL modes
  1275.   available (PAL and PAL Interlaced). Simply select one of the (usually
  1276.   non-interlaced for demos) and select "Use". All windows on the Workbench
  1277.   will close, the video mode will change, and then the windows will
  1278.   reopen - that simple!
  1279.   
  1280.      Allen J. Newton, anewton@alturia.abq.nm.us
  1281.   
  1282.   6 Emulators
  1283.   ***********
  1284.   
  1285.      What? The Amiga isn't good enough? You really want it to be another
  1286.   machine?  Well, look here...
  1287.   
  1288.   6.1 Can I run Unix on my Amiga?
  1289.   ===============================
  1290.   
  1291.      Actually there are three Unix versions on the Amiga. All of them
  1292.   need at least 68030 (see 68EC0xx), probably a 68040 in the near future
  1293.   and seem to have problems with many hard-drive-controllers. You should
  1294.   have a good look into the documentation before installing it. Unix
  1295.   needs much resources, say at least 10Mb RAM and a 150Mb Unix-partition
  1296.   on the hard-drive.
  1297.   
  1298.     1. Commodore offered a System V Unix in the past. It contained TCP/IP,
  1299.        X11 and other software and seemed to make a good job, but it was
  1300.        expensive and after all Commodore has dropped developing it.
  1301.        Commodore-Unix needs a streamer because it is distributed on tapes.
  1302.   
  1303.     2. A Linux port is prepared. But actually there is not very much than
  1304.        the kernel. Specialists might like to use it, but it cannot be
  1305.        recommended for now. Linux is freely distributable. Sources:
  1306.        `ftp.uni-paderborn.de', directory `/pub/amiga/linux' or
  1307.        `ftp.uni-erlangen.de', directory `/pub/LINUX/MIRROR.tsx-11/680x0'.
  1308.   
  1309.     3. NetBSD is freely distributable too. Like Linux it isn't ready for
  1310.        now, but it seems to make big steps. Most GNU software is said to
  1311.        run, especially emacs and gcc. I think it's worth to have a look
  1312.        on it. Sources: `ftp.uni-paderborn.de', directory
  1313.        `/pub/amiga/NetBSD' or `ftp.uni-erlangen.de', Directory
  1314.        `/pub/amiga/unix/NetBSD'.
  1315.   
  1316.   6.2 Is it possible to use the Amiga as X11 terminal?
  1317.   ====================================================
  1318.   
  1319.      Yes, it is. There are two different packages available:
  1320.   
  1321.      GfxBase offers a commercial version which is said to be excellent,
  1322.   but expensive. The distribution includes different window managers
  1323.   andclients.  A demo version is on Aminet.
  1324.   (`gfx/x11/GfxBase-X11-Demo.lha')
  1325.   
  1326.      DaggeX is freely distributable and probably not finished yet. (It
  1327.   calls itself version 0.91.) Source: Aminet, `gfx/x11/DaggeX-0.91.lha'
  1328.   and `gfx/x11/twm_930531.lha'.
  1329.   
  1330.   7 Miscellaneous
  1331.   ***************
  1332.   
  1333.      This last chapter contains some questions that don't fit in the
  1334.   chapters above.
  1335.   
  1336.   7.1 Is there any unix version of LhA?
  1337.   =====================================
  1338.   
  1339.      See Endings.
  1340.   
  1341.   7.2 What are files ending with ...?
  1342.   ===================================
  1343.   
  1344.      Most endings on FTP sites or Fish disks tell you that the file is
  1345.   compressed and/or is an archive containing more than one file. Some
  1346.   programs even archive whole disks. Frequently found endings and
  1347.   programs to handle the related files are:
  1348.   *.sfx*
  1349.        Compressed archives which are included in an executable program:
  1350.        Just call the program and it will extract itself (sfx = self
  1351.        extract)
  1352.   
  1353.   *.lha*
  1354.   *.lzh*
  1355.        Compressed archives; recommended: LhA (`util/arc/LhA_e138.run' on
  1356.        Aminet  or Fish disk 715) or Lx (`util/arc/lx100.lha' on Aminet),
  1357.        Unix version available (`misc/unix/lha-1.00.tar.Z')
  1358.   
  1359.   *.dms*
  1360.        Disks compressed using DMS (`util/arc/dms111.sfx' on Aminet or
  1361.        Fish disk 406)
  1362.   
  1363.   *.zom*
  1364.        Disks compressed using Zoom (`util/arc/Zoom_5.4.lha' on Aminet,
  1365.        Fish disk 682); an older version which you probably need for
  1366.        uncompressing PasTeX is found on Fish disk 459.
  1367.   
  1368.   *.zoo*
  1369.        Compressed archive; recommended: Zoo (`util/arc/zpp2-10.lzh' on
  1370.        Aminet or Fish disk 527)
  1371.   
  1372.   *.Z*
  1373.   *.z*
  1374.   *.gz*
  1375.        Compressed files; recommended gzip (`util/pack/gzip124x.lha' on
  1376.        Aminet), note that this are Unix files in most cases
  1377.   
  1378.   *.tar*
  1379.        Acrhive; recommended: tar (`util/arc/tar.lha' or
  1380.        `util/arc/gtar10.lha' on Aminet or Fish disk 445), note that tar is
  1381.        a Unix archiver and you often find soething like `.tar.Z'.
  1382.   
  1383.   *.arj*
  1384.        Compressed archive; recommended unarj (`util/arc/unarj-0.5.lha' on
  1385.        Aminet)
  1386.   
  1387.   *.zip*
  1388.        Compressed archive; recommended UnZip (`util/arc/unzip-5.1.lha' on
  1389.        Aminet), note that this are MS-Dos archives in most cases
  1390.   
  1391.   7.3 Is there a Stacker-like utility to pack my hard drive?
  1392.   ==========================================================
  1393.   
  1394.      XFH does a good job. It operates as a handler and uses the
  1395.   XPK-libraries, so you have different compression modes (NUKE is a good
  1396.   choice) and possibly even more in the future. The only disadvantage is,
  1397.   that the size of a file is limited by RAM: Don't use it with less than
  1398.   2MB of RAM.
  1399.   
  1400.      XPKDisk by Olaf 'Rhialto' Seibert is another stacker program that
  1401.   takes advantage of the variety of XPK libraries available. Unlike other
  1402.   harddisk compressors it does not compress the files, but creates a
  1403.   pseudo partition and stores the whole tracks as compressed files on
  1404.   your harddisk. Its major advantage is that it does not limit the
  1405.   maximum file size, because it works similar to trackdisk.device and
  1406.   therefore does not need too much temporary storage. But be careful:
  1407.   Never try to optimize an xpkdisk partition using ReOrg. It will trash
  1408.   your virtual partition.
  1409.   
  1410.      Another possibility is EPU. It's shareware and should offer the same
  1411.   as XFH, but without limiting the file size.
  1412.   
  1413.      Sources: Aminet, directory `util/pack', Fish disks 754 (XFH) and 858
  1414.   (EPU)
  1415.   
  1416.   7.4 Where do I get Fish disk xxx?
  1417.   =================================
  1418.   
  1419.      Those FTP servers have that much space (or a CD-Rom) to have all
  1420.   fish disks available online:
  1421.        ftp.isca.uiowa.edu      (USA, directory `/amiga/fx/fxxx')
  1422.        ftp.hawaii.edu          (USA, directory `/pub/amiga/fish')
  1423.        ftp.dfv.rwth-aachen.de  (Germany, directory `/pub/amiga/fish')
  1424.        ftp.uni-erlangen.de     (Germany, directory `/pub/amiga/pd')
  1425.        ftp.funet.fi            (Finland, directory `/pub/amiga/fish')
  1426.   
  1427.   Note that the CD-Rom's are not always mounted. See FTP.
  1428.   
  1429.      Another possibility would be to ask your local dealer. :-)
  1430.   
  1431.   8 Where and how do I get Software?
  1432.   **********************************
  1433.   
  1434.      Three questions arise in this context: Which programs can be found,
  1435.   where are they and how to get them and transfer them home?
  1436.   
  1437.   8.1 Files and databases on freely distributable software
  1438.   ========================================================
  1439.   
  1440.      Of course you need to know where you find things. Many good choices
  1441.   are listed in this paper, as I hope. Other sources are:
  1442.   
  1443.   *AmigaSciSchool*
  1444.        is a list of software and where you find it in Ascii format. It is
  1445.        posted monthly to the newsgroups `comp.sys.amiga.applications',
  1446.        `comp.unix.amiga', and `news.answers'. Additionally you will find
  1447.        it on Aminet sites (`text/doc/AmigaSciSchool-4.01'). It handles
  1448.        everything listed here and many more, for example GNU software,
  1449.        libraries (linked and shared), shells, Unix commands, educational
  1450.        and scientific software and much more.
  1451.   
  1452.   *FishCon*
  1453.        are lists of the Fish disk contents. (`fish/doc/fishcon-???.lzh' on
  1454.        Aminet)
  1455.   
  1456.   *FishXref*
  1457.        is a cross reference list of the Fish contents.
  1458.        (`fish/doc/fishxref-???.lzh' on Aminet) FishXref and Fishcon are in
  1459.        Ascii format.
  1460.   
  1461.   *KingFisher*
  1462.        A Fish disk database, (`fish/doc/Kingfisher1_30.lha', which is the
  1463.        program and `fish/doc/KFData850.lha' ,which contains the data, on
  1464.        Aminet or Fish disk 863) allows search by name and context. See
  1465.        Fish.
  1466.   
  1467.   8.2 A collection of tests
  1468.   =========================
  1469.   
  1470.      `Comp.sys.amiga.reviews' is a moderated newsgroup where tests of
  1471.   soft- and hardware, books and anything else relevant to the Amiga are
  1472.   posted. Its always a good idea to check this newsgroup for a review, if
  1473.   you are interested in something special. Of course you always find only
  1474.   the latest reviews, but the older postings are available per FTP from
  1475.   `math.uh.edu', Directory `/pub/Amiga/comp.sys.amiga.reviews' or on the
  1476.   Fish CDs.
  1477.   
  1478.   8.3 Getting files from a FTP server
  1479.   ===================================
  1480.   
  1481.      Things are easy for those who have access to the Internet and a
  1482.   program called FTP (File Transfer Program). Nearly all Unix computers
  1483.   have it, but not all of them allow the use of FTP.
  1484.   
  1485.      FTP allows you to gain access to some other machines and store and/or
  1486.   retrieve files. Normally one needs an acoount on the remote machine to
  1487.   use it, bat a number of machines have a setup that allows everybody to
  1488.   log in as the user `ftp' or `anonymous', so anybody may get files from
  1489.   them. The most important of this servers are the Aminet servers, which
  1490.   mirror each other and hence should have the same files. They are the
  1491.   best choice if you are looking for Amiga software. Aminet hosts are
  1492.        USA (MO)     ftp.wustl.edu           128.252.135.4
  1493.        USA (CA)     ftp.cdrom.com           192.153.46.2
  1494.        USA (TX)     ftp.etsu.edu            192.43.199.20
  1495.        Scandinavia  ftp.luth.se             130.240.18.2
  1496.        Germany      ftp.uni-kl.de           131.246.9.95
  1497.        Germany      ftp.uni-erlangen.de     131.188.1.43
  1498.        Germany      ftp.cs.tu-berlin.de     130.149.17.7
  1499.        Germany      ftp.uni-paderborn.de    131.234.2.32
  1500.        Germany      ftp.uni-oldenburg.de    134.106.40.9
  1501.        Germany      ftp.coli.uni-sb.de      134.96.68.11
  1502.        Switzerland  ftp.eunet.ch            146.228.10.16
  1503.        Switzerland  litamiga.epfl.ch        128.178.151.32
  1504.        UK           ftp.doc.ic.ac.uk        146.169.2.1
  1505.      All these mirrors have a directory `/pub/aminet', where you will find
  1506.   much stuff. Please use a mirror close to you! Some other important hosts
  1507.   are
  1508.        ftp.funet.fi             (Finland)
  1509.        ftp.isca.uiowa.edu       (USA)
  1510.        ftp.hawaii.edu           (USA)
  1511.        ftp.cso.uiuc.edu         (USA)
  1512.        ftp.dfv.rwth-aachen.de   (Germany)
  1513.      Note that grind, aachen and erlangen have the full collection of Fish
  1514.   disks available! See Fish disk xxx.
  1515.   
  1516.      To connect to a special host (ftp.uni-erlangen.de for example), you
  1517.   should type
  1518.        ftp ftp.uni-erlangen.de
  1519.   
  1520.   The host answers by requesting your login. You should type
  1521.        ftp
  1522.   
  1523.   No you are asked for a password. Please type your Email address here, if
  1524.   you have one. If not, use the password ftp.
  1525.   
  1526.      Now you're inside the host. There is a number of commands you may
  1527.   execute here. The most important are:
  1528.   *?*
  1529.        Prints the help text of the FTP command. Additionally you may type
  1530.        *? command* to get information on a special command.
  1531.   
  1532.   *bin*
  1533.        Tells the FTP program that you whish to transfer binary files. It
  1534.        is always a good choice to type bin as the very first command!
  1535.        Files you load without the bin command can be corrupt.
  1536.   
  1537.   *get <file>*
  1538.        Loads the given file from the host. On most Unix machines you can
  1539.        type something like `get file.txt -' or `get file.txt |more' to
  1540.        show a text on the screen. Note that there *must* be no blank
  1541.        between the | and the word more!
  1542.   
  1543.   *mget <pat>*
  1544.        Loads the given files. pat may contain Unix style like wildcards.
  1545.   
  1546.   *put <file>*
  1547.   *mput <pat>*
  1548.        Like get and mget, but transfer files from you to the remote host.
  1549.        This is in most cases not allowed, except for a special directory
  1550.        called `incoming'. You can place files here which you want to make
  1551.        public.
  1552.   
  1553.   *cd <dir>*
  1554.        Like the usual cd command. The commands get, mget, put, mput, dir
  1555.        and ls refer to the current working directory.
  1556.   
  1557.   *dir [<dir>]*
  1558.   *ls [<dir>]*
  1559.        Like `list' and `dir' on the Amiga. Note that the FTP-dir
  1560.        corresponds to the Amiga-list!
  1561.   
  1562.   *bye*
  1563.        Leaves the FTP program.
  1564.   
  1565.      When you have used FTP for the first times you will notice, that you
  1566.   always begin with executing the same steps:
  1567.     1. Type the login (ftp in most cases)
  1568.   
  1569.     2. Type the password (your mail address in most cases)
  1570.   
  1571.     3. Enter the bin command
  1572.   
  1573.     4. Change the current working directory (`/pub/aminet' for example)
  1574.           This may get executed automatically. What you need is a file
  1575.   called `.netrc' in your home directory. Note that it needs to be
  1576.   protected against others! The FTP program doesn't use it, if it can be
  1577.   read by anything else than you. (Protection is set using the command
  1578.   `chmod go-rwx .netrc'.) The .netrc file contains some entries for your
  1579.   most favourite FTP sites, each separated by empy lines. A typicel entry
  1580.   may look like this:
  1581.        machine ftp.uni-erlangen.de
  1582.        login ftp
  1583.        password <your mail address> or <ftp>
  1584.        macdef init
  1585.            bin
  1586.            cd pub/aminet
  1587.      Note that on some machines it is possible to use the machine name
  1588.   `default' which meets all machines not listed in .netrc.
  1589.   
  1590.   8.4 Getting files from a Mail server
  1591.   ====================================
  1592.   
  1593.      Another way to get files is to use a mail server. This assumes that
  1594.   you can send mail to Internet addresses and get mail from Internet
  1595.   hosts. It works by sending a mail to the server specifying some
  1596.   commands, for example send commands for the files you want. Important
  1597.   mail servers are
  1598.        ftpmail@decwrl.dec.com
  1599.        mailserver@nic.funet.fi
  1600.        ftp-mailer@ftp.informatik.tu-muenchen.de
  1601.        mrcserv@janus.mtroyal.ab.ca
  1602.        mail-server@ftp.cs.tu-berlin.de
  1603.        mail-server@rtfm.mit.edu
  1604.   
  1605.   The most important commands are:
  1606.   *Help*
  1607.        Tells the server that you wish to get an Ascii file containing
  1608.        detailed explanation how to use the server.
  1609.   
  1610.   *Limit <number>*
  1611.        Specifys that you wish to get not more than <number> Kbytes per
  1612.        mail.  Larger files get splitted into small pieces of at most
  1613.        <number> Kbytes which are sent as separate mails each. Note that
  1614.        the mails may get larger because of overhead.
  1615.   
  1616.   *Cwd <dir>*
  1617.        Sets the current working directory to <dir>. This directory is
  1618.        used by the commands send and dir.
  1619.   
  1620.   *Index*
  1621.        will return a list of files and/or directories that the server
  1622.        offers. Note that this may be *very* large!
  1623.   
  1624.   *Index <item>*
  1625.        returns a list of files containing <item> in their names.
  1626.   
  1627.   *Dir [<dir>]*
  1628.        returns a list of the files and directories in the given directory.
  1629.   
  1630.   *Send <file1> <file2> ... <fileN>*
  1631.        Tells the server to send the given files to you.
  1632.   
  1633.   *Begin*
  1634.        Tells the server to ignore all lines above this command.
  1635.   
  1636.   *End*
  1637.        Like Begin, but specifies to ignore the lines below. (A signature
  1638.        for example!) A typical session would be to send the following
  1639.   mail to the mail server:
  1640.        BEGIN
  1641.        CD /pub/aminet/util/arc
  1642.        SEND LhA_e138.run
  1643.        END
  1644.   
  1645.   8.5 The Fish disks
  1646.   ==================
  1647.   
  1648.      A very good source are the Fish disks. One distinguishes between the
  1649.   floppy disks and the CD-Roms.
  1650.   
  1651.   8.5.1 The Amiga Library disks
  1652.   -----------------------------
  1653.   
  1654.      Fred Fish has started in the middle eighties to collect freely
  1655.   distributable software on floppy disks. There are more than 900 disks
  1656.   for now and very much good stuff on it. Most Amiga dealers sell them
  1657.   and most magazines contain addresses of people mailing them to you for
  1658.   about 3$ per disk or less.
  1659.   
  1660.      Fred Fish has announced to terminate offering software on floppy
  1661.   disks with number 1000. Instead he offers CD-Roms. See Fish CD.
  1662.   
  1663.      There are some things which can be found on the Fish disks, but not
  1664.   on Aminet.  However, you can get them with FTP. See Fish disk xxx.
  1665.   
  1666.   8.5.2 The Fresh Fish CD-Roms
  1667.   ----------------------------
  1668.   
  1669.      Fred Fish is going on to offer freely distributable software. But
  1670.   now he collects it on CD-Rom's. He will release two different kinds of
  1671.   CD's:
  1672.     1. Monthly released disks are divided into roughly three sections:
  1673.          1. New material, which includes the material from the new
  1674.             unreleased floppy disks as well as material which does not
  1675.             appear in the floppy distribution, about 84Mb on the first
  1676.             disk.
  1677.   
  1678.          2. Useful utilities that can be used directly off the CD-ROM if
  1679.             desired, thus freeing up the corresponding amount of hard
  1680.             disk space (GNU Emacs, Gnu C, GNU C++, Amiga E, PasTeX,
  1681.             AmigaGuide, Installer, 2.0 and 3.0-Includes, different
  1682.             archivers, tape drivers, the AmiCDROM filesystem and many
  1683.             other GNU and BSD tools, ...), about 150Mb on the first disk.
  1684.   
  1685.          3. Older material from previous released floppy disks or
  1686.             CD-ROM's, about 404 Mb on the first disk. (Fish disk 600-910)
  1687.   
  1688.     2. Disks containing the latest software as well as recent software in
  1689.        packed format only. (These are intended to be used for example in
  1690.        BBS's.)
  1691.           I recommend especially the first kind of Fish CD's. They cost
  1692.   about 20$ plus 3$ for shipping (5$ outside USA/Canada/Mexico) and are
  1693.   available from
  1694.   
  1695.        Amiga Library Services
  1696.        610 N. Alma School Road, Suite 18
  1697.        Chandler, AZ 85224-3687
  1698.        U.S.A.
  1699.        
  1700.        Phone/FAX: (602) 917-0917
  1701.   
  1702.   8.6 How do I Read and write MS-Dos disks?
  1703.   =========================================
  1704.   
  1705.      No problem for owners of Workbench 2.1 or higher: The program
  1706.   CrossDos is part of the Workbench. All you have to do is mounting the
  1707.   device `pc0:' by putting it into the drawer `Devs:DOSDrivers' or by
  1708.   double-clicking the icon in `Sys:Storage/DOSDrivers'. Ms-Dos disks in
  1709.   drive `df0:' can now be handled in the usual manner replacing the word
  1710.   `df0:' by `pc0:'. For example the directory can be shown with the
  1711.   command dir pc0:.
  1712.   
  1713.      People still running Workbench 2.0 or lower need a program called
  1714.   `MSH'.  You will find this on the Aminet (directory misc/emu) and on
  1715.   Fish disk 382.  See Sources. After editing the file `devs:MountList' as
  1716.   described in the documentation you have to say Mount msh: in the CLI
  1717.   and can now do the same as above replacing the word `pc0:' with `msh:'.
  1718.   
  1719.   8.7 How do I split large files?
  1720.   ===============================
  1721.   
  1722.      There are some archives which are too large to fit on one disk. To
  1723.   transfer them on disks you need to split them into smaller pieces and
  1724.   transfer each part on a separate disk. I recommend Martin Schlodder's
  1725.   `Splitter'.  (Aminet, `util/misc/splitter_121.lha'. The archive
  1726.   contains binaries for MS-DOS and should be compilable without problems
  1727.   on any Unix system.
  1728.   
  1729.   The Amiga-FAQ archive
  1730.   *********************
  1731.   
  1732.      The Amiga-FAQ is available in different formats: Ascii format (which
  1733.   is posted to the nets) AmigaGuide format (which is the adequate format
  1734.   on the Amiga) and in dvi format (to be printed). Additionally there is
  1735.   some stuff, that might be useful or interesting, but could not be
  1736.   included into the Amiga-FAQ:
  1737.        txt/amiga.history       On the Amiga's history
  1738.        txt/story.txt           The Commodore story (or: the Tramiel
  1739.                                story ;-)
  1740.        txt/amiga.newsgroups    Overview on comp.sys.amiga.*
  1741.        txt/amiga.sites         List of FTP sites
  1742.        txt/AmigaOverview.tex   A short overview on the Amiga-Soft- and
  1743.                                Hardware
  1744.        txt/Hardware.tips       For those people who can't live without solder
  1745.        src/JWSplit.c           The source of a file splitter
  1746.        src/JWJoin.c            The opponent to JWSplit
  1747.        src/addtoc.c            Utility to add a toc to texinfo-created docs
  1748.                                (this document uses it)
  1749.   
  1750.      I decided to collect these in the Amiga-FAQ archive. It is called
  1751.   AmigaFAQxxxxxx.lha (where xxxxxx is the date of the last release) and
  1752.   can be found on Aminet, directory `text/docs'.
  1753.   
  1754.   Contributions
  1755.   *************
  1756.   
  1757.      This FAQ can neither get useful nor hit further development without
  1758.   your help. Suggestions, contributions, new answers, critics, anything
  1759.   is rather welcome.
  1760.   
  1761.      Please note, that very major subjects are absolutely missing yet:
  1762.   Nothing about sound, nothing on graphic cards, no Animation. These are
  1763.   some of the Amiga's best points! But I don't know them ... :-(
  1764.   
  1765.      So grab your keyboard (Your pencil? Well, if there's no other way...)
  1766.   and send mail to:
  1767.   
  1768.              Jochen Wiedmann
  1769.              Am Eisteich 9
  1770.        72555 Metzingen (Germany)
  1771.              Tel. 07123 / 14881
  1772.        
  1773.              Internet: wiedmann@mailserv.zdv.uni-tuebingen.de
  1774.   
  1775.   Credits
  1776.   *******
  1777.   
  1778.      My thanks go to:
  1779.   *Reinhard Spisser and Sebastiano Vigna*
  1780.        for the Amiga version of texinfo. This is written with it.
  1781.   
  1782.   *The Free Software Foundation*
  1783.        for the original version of texinfo and many other excellent
  1784.        programs.
  1785.   
  1786.   *Dylan McNamee*
  1787.        for contributing the sections on Editors, Word Processors, DTP and
  1788.        Postscript and some wording fixes.
  1789.   
  1790.   *Joseph Luk*
  1791.        for help in the section on chunky/planar, double buffering and
  1792.        PAL/NTSC
  1793.   
  1794.   *Urban Dominik Mueller*
  1795.        for the FAQ on FTP and Mail-servers.
  1796.   
  1797.   Index
  1798.   *****
  1799.   
  1800.   
  1801.   
  1802.    .arj                                   Endings
  1803.    .dms                                   Endings
  1804.    .gz                                    Endings
  1805.    .lha                                   Endings
  1806.    .lzh                                   Endings
  1807.    .netrc                                 FTP
  1808.    .sfx                                   Endings
  1809.    .tar                                   Endings
  1810.    .Z                                     Endings
  1811.    .z                                     Endings
  1812.    .zip                                   Endings
  1813.    .zom                                   Endings
  1814.    .zoo                                   Endings
  1815.    68EC020                                68EC0xx
  1816.    68EC030                                68EC0xx
  1817.    68LC040                                68EC0xx
  1818.    Amiga Library disks                    Fish floppy disks
  1819.    Amiga-FAQ archive                      Amiga-FAQ Archive
  1820.    AmigaBasic                             AmigaBasic
  1821.    AmigaSciSchool                         Infos
  1822.    Anonymous                              FTP
  1823.    Assemblers                             Compilers
  1824.    AutoDocs                               Includes
  1825.    C                                      Compilers
  1826.    C++                                    Compilers
  1827.    Catalog description                    Localizing
  1828.    Catalog translation                    Localizing
  1829.    Catalogs                               Localizing
  1830.    CatComp                                Localizing
  1831.    CATS                                   CATS
  1832.    Chunky displays                        Chunky vs. Planar
  1833.    Commodore, Frankfurt                   Developer
  1834.    Commodore, West Chester                CATS
  1835.    comp.sys.amiga.reviews                 Reviews
  1836.    Compilers                              Compilers
  1837.    Console window                         WindowPtr
  1838.    Contributions                          Contributions
  1839.    Credits                                Credits
  1840.    CrossDos                               MS-Dos disks
  1841.    DaggeX                                 X11
  1842.    Desktop Publishing                     DTP
  1843.    Developer                              Developer
  1844.    DoMethod                               Missing functions
  1845.    DoSuperMethod                          Missing functions
  1846.    Doublebuffering                        Doublebuffering
  1847.    DTP                                    DTP
  1848.    Editors                                Editors
  1849.    Emulators                              Emulators
  1850.    endings                                Endings
  1851.    Enforcer                               68EC0xx
  1852.    Esc sequences                          Printer control
  1853.    FD-files                               Pragmas
  1854.    fd2pragma                              Pragmas
  1855.    file endings                           Endings
  1856.    Fish CD-Rom's                          Fish CD
  1857.    Fish disks                             Fish disk xxx
  1858.    Fish disks                             Fish
  1859.    Fish floppy disks                      Fish floppy disks
  1860.    FishCon                                Infos
  1861.    FishXref                               Infos
  1862.    FlexCat                                Localizing
  1863.    Forth                                  Compilers
  1864.    Fortran                                Compilers
  1865.    FPU                                    FPU
  1866.    Fresh Fish CD-Rom's                    Fish CD
  1867.    FTP servers                            FTP
  1868.    GfxBase                                X11
  1869.    GigaMem                                68EC0xx
  1870.    Graphics                               Graphics
  1871.    HD compression                         HD-Compression
  1872.    Hirsch & Wolf                          CATS
  1873.    history                                Amiga-FAQ Archive
  1874.    HookEntry                              Missing functions
  1875.    Includes                               Includes
  1876.    KingFisher                             Infos
  1877.    KitCat                                 Localizing
  1878.    LibAllocPooled                         Missing functions
  1879.    Linux                                  Unix
  1880.    Lisp                                   Compilers
  1881.    locale.library                         Localizing
  1882.    Localizing                             Localizing
  1883.    Mail-server                            Mail
  1884.    MakeCat                                Localizing
  1885.    Memory, virtual                        68EC0xx
  1886.    Missing functions                      Missing functions
  1887.    MMU                                    68EC0xx
  1888.    Modula-2                               Compilers
  1889.    Monitors                               Monitors
  1890.    MS-Dos disks                           MS-Dos disks
  1891.    Msh                                    MS-Dos disks
  1892.    Multiscan                              Monitors
  1893.    NDA                                    Developer
  1894.    NDK                                    Includes
  1895.    NDU                                    Includes
  1896.    NDUK                                   Includes
  1897.    NetBSD                                 Unix
  1898.    NTSC                                   PAL-NTSC
  1899.    Oberon                                 Compilers
  1900.    packers                                Endings
  1901.    packers on Unix                        Endings
  1902.    Page Layout Languages                  Word Processors
  1903.    PAL                                    PAL-NTSC
  1904.    Pascal                                 Compilers
  1905.    Planar displays                        Chunky vs. Planar
  1906.    Postscript                             Postscript
  1907.    pragmas                                Pragmas
  1908.    Printer control                        Printer control
  1909.    Prolog                                 Compilers
  1910.    Reviews                                Reviews
  1911.    RKMs                                   Manuals
  1912.    Rom Kernel manuals                     Manuals
  1913.    Splitting files                        Splitting
  1914.    Stacker                                HD-Compression
  1915.    TeX                                    TeX
  1916.    Text Editors                           Editors
  1917.    Unix                                   Unix
  1918.    Unix-LhA                               Unix-LhA
  1919.    VGA                                    Monitors
  1920.    Word Processors                        Word Processors
  1921.    Wysiwyg                                Word Processors
  1922.    X11                                    X11
  1923.    XFH                                    HD-Compression
  1924.    XPK                                    HD-Compression
  1925.   
  1926.