@database Execute64.guide
@master Execute64.guide
@$VER: 1.16 (01.03.98)
@author "Guido Mersmann"
@(c) "Guido Mersmann"

@node "Main" "Execute64"


@{b}                            Execute64  V1.16
                           ------------------

                    (C) Guido Mersmann in 1997-1999


                    EXECUTE64 IS A MAILWARE PRODUCT

      READ THE DISTRIBUTION SECTION FOR INFORMATION ON DISTRIBUTION


   Contents@{ub}
  ----------
  
        @{"           Introduction           " link "Introduction"}
        @{"        System Requirements       " link "SystemRequirements"}
        @{"           Feature List           " link "FeatureList"}
        @{"           Distribution           " link "Distribution"}
        @{"          How To Install          " link "HowToInstall"}   Execute64
        @{"            Execute64             " link "Execute64"}
        @{"            The  Cable            " link "Cable"}
        @{"               FAQS               " link "FAQS"}
        @{"             History              " link "History" 999}
        @{"              Future              " link "Future"}
        @{"             Bug List             " link "Buglist"}
        @{"              Thanx               " link "Thanx"}
        @{"            The Author            " link "Author"}   Bug Reports,Incitements...
        @{"    My other amiga projects!      " link "OtherPrgs"}
@endnode
@node "Introduction" "Introduction"

   @{b}Introduction@{ub}
  --------------

   Execute64 is a usefull tool for all C64 owner. You don´t need to store
   your programs on slow 1541 disks any longer.

   Just load a little tool on your C64. (like the good  old  "Ultra-Load")
   By  using a special @{"Cable" link "CABLE"} your software will be transfered direct info
   the c64 memory. The loading procedure takes only a few seconds.
@endnode
@node "Systemrequirements" "Systemrequirements"

   @{b}System requirements@{ub}
  ---------------------

   Execute64 (should work) works on all Amigas with OS 2.0 or higher.

   If you want to use compressed files in conjunction with the XPK  system
   it is requiered to install xpk. (-8

   That`s all!
@endnode
@node "Featurelist" "Features"

   @{b}Features@{ub}
  -----------

  ° 100% Assembler

  ° supports Bin, P00, SID, T64 and D64 without any external tools.

  ° XPK support! (Allows to store the C64 files in compressed form)

  ° Auto start (@{"You are able to disable the autorun" link "PT_NoStart"})

  ° A brilliant C64 music player (I did it again)

  ° ASL file selection allows icon usage.

  ° It is possible to load programs from $400 to $ffff into the C64
     memory. This allows to load frezzed programs without using the
     special Modul (e.G. Action Replay) loader. (The IO space is disabled
     during memory access.)

  ° @{"Load" link "PT_BASE"} and @{"run adresse" link "PT_SYS"} may be specified, without patching
     the original C64 .

  ° It is possible to define the run address within the @{"file name" link "FAQRUN"}. So it
     is not required to patch the file or switch of @{"auto run" link "PT_NOSTART"} for manual
     startup.
@endnode
@node "Distribution" "Distribution"

   @{b}Distribution@{ub}
  --------------

   This program should be published on every public medium, as long as all
   files  in  the archive are unchanged. If this medium is a CD I expect a
   free copy. (AminetCDs excluded)

   @{b}Execute64 is Mailware.@{ub}

   I expect from everybody, who uses Execute64 regularly, to  send  me  an
   email  or postcard. I think this does not hurt anybody, and I will have
   more fun to integrate new features or write a new game.

   @{b}I am not liable for injures or data loss caused by Execute64.  The  use
   of Execute64 is on your own responsibility !!!@{ub}
@endnode
@node "HowToInstall" "How to install Execute64"

   @{b}How to install Execute64@{ub}
  --------------------------

   Just copy the "Execute64" Command to your C: drawer.

   Now, it is required to put a file on a C64 disk.  How  to  create  such
   disk? Well there are different ways.

   1.

   Take a disk and get a copy from somewere else (an other Execute64 user).

   2.

   You create a ´Frodocable´ (I choosed this way) and  connect  your  1541
   direct  with  your amiga. You´ll find additional information within the
   "Easy1541.lha" file on Aminet.

   3.

   You enter a Basic program. This program creates the C64 version of
   Execute64. A printable file is included in the "data" drawer.

   4.

   If you send me a disk (5 1/4´´) and a stamps (or Money for stamps) I´ll
   copy the stuff and send it back.

@endnode
@node "Execute64" "Execute64"

   @{b}Execute64@{ub}
  -----------

   @{b}Don´t forget to install your @{"cable" link "CABLE"}. You should do this  only  if  both
   computers are switched off. If not one wrong move may cause a desaster.

   Special key are marked by "<>"@{ub}

   @{u}C64@{uu}

   Enter the following lines:

   @{b}load"execute64",8 <RETURN>
   run  <RETURN>@{ub}

   You may also enter this line:

   @{b}load"execute64",8:<SHIFT-RUNSTOP>@{ub}

   After loading Execute64 will be started automaticaly.

   If Execute64 is the first file on disk you may use this:

   @{b}load"*",8:<SHIFT-RUNSTOP>@{ub}


   @{u}AMIGA@{uu}

   On the Amiga side there are different ways to start Execute64:

   @{b}Workbench@{ub}

   After starting via Workbench an ASL requester is opening. It is  asking
   for an C64 file. After sending this requester opens again, so the amiga
   is ready for an other transmission.

   @{b}CLI@{ub}

   If you use the CLI there is the following template:

   Execute64 @{"FILE" link "PT_FILE"},@{"NOSTART" link "PT_NoSTART"}/S=@{"NS" link "PT_NOSTART"},@{"LOOP" link "PT_LOOP"}/S=@{"L" link "PT_LOOP"},@{"BASE" link "PT_BASE"}=@{"B" link "PT_BASE"},@{"SYS" link "PT_SYS"}=@{"S" link "PT_SYS"},@{"TO/K" link "PT_TO"}

@endnode
@node "PT_FILE" "The Pattern of Execute64: FILE"

   @{b}File@{ub}
  ------

   The name of the C64 file. If no file  is  specified  an  ASL  Requester
   opens.

   You should read  the  chapter  about  the  @{"running specifications" link "FAQRUN"}  for
   further information.
@endnode
@node "PT_NOSTART" "The Pattern of Execute64: NOSTART"

   @{b}NoStart@{ub}
  ---------

   Under normal conditions Execute64 is starting  the  files  on  the  C64
   side.  This  switch allows to disable this feature. This is useful when
   you want to save a file to disk.

@endnode
@node "PT_LOOP" "The Pattern of Execute64: LOOP"

   @{b}Loop@{ub}
  ------

   This switch  allows  to  enable  the  ASL-Requester  loop.  After  each
   transmission  a  new ASL requester asks for an other file. The Amiga is
   ready for an other transmission.

   Abort the ASL Requester and Execute64 will be terminated.
@endnode
@node "PT_BASE" "The Pattern of Execute64: Base"

   @{b}Base@{ub}
  ------

   Normaly the first 2 bytes of an C64 program define  the  load  address.
   This  argument  allows  to redefine this address temporary. The program
   will be loaded on the given position in memory.

   If the argument @{"LOOP" link "PT_Loop"} is enabled or the file typ is .d64 or .t64,  then
   this option is used on any transmission.

   Note: Under normal circumstances a program  is  only  working  correct,
   when  loaded  to  one  right  address.  In  addition  to this it may be
   required to redefine the run address via @{"SYS" link "PT_SYS"}!

   Examples:

   Execute64 @{"FILE" link "PT_File"} BoulderDash Base $1000

   The program "boulderdash" will be transfered beginning  at  C64  memory
   address 4096. It will be startet via "SYS4096"

   Execute64 @{"FILE" link "PT_File"} BoulderDash Base 4096 @{"SYS" link "PT_SYS"} $1010

   This works exactly like the  last  example.  The  base  here  is  given
   decimal.  In addition to that this version performs an "SYS4112" to run
   the .
@endnode
@node "PT_SYS" "The Pattern of Execute64: Sys"

   @{b}Sys@{ub}
  -----

   This argument allows to specify the address where  the  program  should
   start the execution. It works simular to the Basic command "SYS".

   If the argument @{"LOOP" link "PT_Loop"} is enabled, then this option is used only on  the
   first transmission.

   If you specify an address, then all  @{"other possible auto run detection" link "FAQRUN"}
   detection methods are offline.

   Examples:

   Execute64 @{"FILE" link "PT_File"} BoulderDash SYS $812

   After transfering the  will be started by using "SYS 2066"!

   Execute64 @{"FILE" link "PT_File"} BoulderDash SYS 2066

   This is working exactly like the previous version. Only the address  is
   given decimal this time.
@endnode
@node "PT_TO" "The Pattern of Execute64: To"

   @{b}To@{ub}
  ----

   If you specify "To" followed  by  an  path,  then  it  is  possible  to
   transfer the @{"file" link "PT_FILE"} by using a IO-Card or direct into a new file.

   @{b}PAR: is default! If "To" is not specified the  @{"file" link "PT_FILE"}  will  allways  be
   transfered via the internal Amiga parallel port@{ub}

   e.g:

   Execute64 game.bin to ser:

   The internal serial port is used for transmission. This is only  useful
   when you´ve connected you C64 via an serial to parallel converter.

   Execute64 game.bin to GP0:

   GP0: is the destination of your @{"file" link "PT_FILE"}.

   Execute64 game.bin to t:Storage

   The @{"file" link "PT_FILE"} will be converted and stored into "t:Storage". Note: The  new
   file isn´t a real binary. It´s the special Execute64 transmission file.
   You are able to copy this file manualy to the C64 by coping  this  file
   to e.g. GP0:. There is no other use.
@endnode
@node "FileFormat" "Supported File Formats!"

   @{b}Supported File Formats!@{ub}
  -------------------------

   Here you`ll find backgound information about the different  file  types
   and how Execute64 is handling them.

   @{" " link "BIN"} The BIN format
   @{" " link "P00"} The P00 format
   @{" " link "PSID"} The PSID format
   @{" " link "D64"} The D64 format
   @{" " link "T64"} The T64 format
@endnode
@node "BIN" "The BIN Format"

   @{b}The BIN Format@{ub}
  ----------------

   This kind of files are exactly the same file used on the C64 itself.

   If you`ll take a look (e.g. "type File hex"), then you`ll see that most
   files  of this type are starting with an $0108. The means the file will
   be loaded to address $0801 (Intel is ordering the two bytes  different)
   In  the  most  cases  such $0801 file can be executed by using the C64s
   "run" command, because $0801 is the start of the basic memory.

   BIN files can`t be larger then 65536 bytes, because the  C64  has  only
   64KB  memory.  Some  memory  is  already used with C64 basic and system
   stuff, so the limit is 64512. This means a file can  only  stored  from
   $0400  to  $ffff. This restriction should not create any problem, cause
   it makes no sense to store data before $400. And  of  course  Execute64
   must stay in memory, too. (-8

   Execute64 is sending these file direct into the C64.
@endnode
@node "P00" "The P00 Format"

   @{b}The P00 Format@{ub}
  ----------------

   This file type is very simular to the @{"BIN"  link  "BIN"} type.

   This format was created on PC, cause the C64 is  supporting  long  file
   names  all  the time and the PC doesn´t! (Ok, the PC learned long names
   first when Win95 comes up.) So this file type contains a little  header
   containing the real long file name, which can be used by emulators.

   Execute64 is sending this file without Header.
@endnode
@node "PSID" "The PlaySID Format"

   @{b}The PlaySID Format@{ub}
  --------------------

   The PSID format contains music.

   In the most cases these "music" files are complete parts ripped out  of
   games.  An  little  header  allows to play all the different tunes with
   only one player routine.

   When using such file Execute64 is transfering  the  music  file  and  a
   special music player. After autostart you are able to enjoy the tune.

   Please read the chapper about @{"problems when using PSID files" link "FAQPSID"}.

   If the music file contains more than one tune, you are able  to  select
   the tune by using the C64 keyboard. (Keys: 1-0 A-Z)

   The arrow left (ESC) exists the music player and returns to  Execute64.
   This  allows  to restart the player a often as you wish without loading
   Execute64 again.
@endnode
@node "T64" "The T64 Format"

   @{b}The T64 Format@{ub}
  ----------------

   T64 are tape image files. In theorie they can contain 65535 programs and
   sized more than 100 MB.

   Practicaly this format was created on an PC and on the PC everything is
   restricted.  So  some  emulators  are unable to use T64 files with more
   than 63 entries, and cutting the directory or are telling you the  file
   is damaged.

   Execute64 doesn´t make any restrictions. After  starting  a  window  is
   opening, where you are able to select the program for transmission. The
   window stays open until you quit it. This makes it easy  to  send  more
   than one program.

@endnode
@node "D64" "The D64 Format"

   @{b}The T64 Format@{ub}
  ----------------

   D64 file are disk images. In the most cases there size is exact 174848,
   but some images are a little longer and represent an 42 track disk.

   After starting a window is opening, where you are able  to  select  the
   program for transmission. The window stays open until you quit it. This
   makes it easy to send more than one program.
@endnode

@node "History" "History"

   @{b}History@{ub}
      ---------

   This text is telling the story of AView like a diary.

   1.00 First aminet version
   1.01 @{"Sys" link "PT_SYS"} and @{"Base" link "PT_Base"} arguments implemented.
        Thanks to my new @{"GuideCheck" link "OtherPrgs"} tool there are no longer
         invalid \@links, unreferenced nodes and of course stupid syntax
         errors.
        Additional manual adjustments and enhancements.
   1.10 Many internal changes. Now it is possible to execute .T64 programs
         direct without any extracting.
        "To" argument attached. This allows to use any parallel port
         addapter.
   1.11 D64 file support are now implemented. It is no longer required to
         extract files by using external tools.
        Internal changes. Execute64 is now using less memory and is
         a little faster when using XPK files.
   1.12 @{"Base" link "PT_Base"} argument fixed.
        Better error handling.
   1.13 BUGFIX: @{"Base" link "PT_Base"} and @{"Sys" link "PT_SYS"} sometimes created illegal errors
         even if thy where extracted from the file itself.
        BUGFIX: An illegal sector within D64 files caused Execute64 to
         wait until an break (CTRL-C).
        BUGFIX: The sys address specified by name was always interpreted as
         decimal. )-8
        BUGFIX: D64 scanner! In rare cases binary files where handled like a
         disk image.
   1.14 PSID support! Yes!! A complete music player! And I must say I am
         still able to code the C64 and the VIC. (-8
   1.15 BUGFIX: XPK files sometimes caused problems. (internal cache)
   1.16 New version of Execute64 (C64 part). This Version is filling the
         whole C64 memory with Zero. This should allow to use at least the
         last (bad programmed) program on the good old C64.
        BUGFIX: The D64 handler wasn´t always able to read the directory
         and Execute64 was returning an illegal sector.
@endnode
@node "Future" "Future"

   @{b}Future@{ub}
  --------

 ° A small preferences programm to override the default config

 ° I don´t know. (-8 Your wishes are welcome.

@endnode
@node "Buglist" "Buglist"

   @{b}Buglist@{ub}
  ---------

 ° Currently there are no known bugs.
@endnode
@node "Thanx" "Thanx"

   @{b}Thanx@{ub}
  -------

   Many thanks to all the people spending money.
@endnode
@node "Author" "The Author"

   @{b}The Author@{ub}
  ------------

   If you find some bugs please send me a message, so that I  can  correct
   these bugs in the next version.

   Any ideas and suggestions are welcome, too.

@{b}   Guido    Mersmann
   Glatzer Straße 12
   48477     Hörstel
             Germany

   FIDONET : 2:2449/246.15
   INTERNET: geit\@studST.FH-Muenster.DE
@{ub}
@endnode

@node "OtherPrgs" "Other programs!"

   @{b}Other programs!@{ub}
  -----------------

   @{b}BoulderDäsh@{ub}   [game/jump/boulderdaesh.lha]
  -------------

   Clone of the original Boulderdäsh for Amiga. It  is  the  only  version
   running  faster  on  Amiga than the original. It looks and behaves like
   the original. I was asked, where the C64 is. (-8  And  all  this  on  a
   68000 without Fastmem.

   @{b}SimpleCat@{ub}     [dev/misc/simplecat.lha]
  -----------

   This tool is for ers and  user.  Using  this  program  you  can
   change  catalogues  of  programs with your favourite text editor in the
   easiest way. These programs must include a CS file. Search  for  it  in
   the archive of the catalogues drawer.

   @{b}Afind@{ub}         [util/misc/afind.lha]
  -------

   With this program you can search for programs on your Aminet CDs in the
   easiest  way. It is the same than the original tool on the CD, but here
   you can use AminetCDs and AminetSets mixed. So you are  not  forced  to
   search  for  a program on the first 5 Aminet CDs, that is on AminetSet1
   Disk b.

   @{b}AView@{ub}         [util/misc/aview.lha]
  -------

   AView is a great multiview enhancement/replacement! It is working  like
   Multiview, but you are able to specify a special viewer/player for each
   file typ.

   @{b}Guideformat@{ub}   [text/edit/guideformat.lha]
  -------------

   GuideFormat is a simple tool. It is easy to format text blocks, even if
   there are "links" or other guide commands in.

   @{b}GuideCheck@{ub}   [text/edit/guidecheck.lha]
  ------------

   GuideCheck ist ein Tool, das es erlaubt ein  Guidefile  vollständig  zu
   prüfen und alle eventuellen Fehler aufzudecken.

   @{b}SiedlerBoot@{ub}   [game/patch/siedlerboot.lha]
  -------------

   This allows to start the Settlers direct via CD and save the scores  on
   HD.  There  is  no hard disk install required. SiedlerBoot requires the
   "Amiga Plus Sonderheft 9" cover CDROM.

   @{b}Execute64@{ub}     [misc/emu/execute64.lha]
  -----------

   Execute64 allows to transfer file direct into  the  C64  and  to  start
   them. This allows to play games an use the Amiga a big file server.
@endnode
@node "CABLE" "The Cable Specifications!"

   @{b}The Cable Specifications!@{ub}
  ---------------------------

   If you connected your C64 via a  special  cable  for  another  transfer
   program,  then check the manual. In the most cases (8 Bit protocol) the
   cable is 100% compatible. I`ve checked around 10 different  SID-player,
   transferer  and  executer.  All  programs  worked  fine  using my cable
   version. Some programs are using less wires, so maybe you must only add
   a  view  wires  if  possible. Generaly all programms are using the same
   cable.

   @{b}I am not responsible for any destroyed data or hardware caused by  this
   documentation and the included software! It is your own risk!@{ub}

   Take care that you don`t create any  short  cuts.  It`s  very  easy  to
   destroy the CIAs and more.@{ub}


   Parts:

   1  25pin SUB-D Male

   1  24pin C64 Userport Connector

   1  12 wire cable.

   Optional:

   1  25pin to 25pin Gender Changer Box

   1  small switch

      Amiga parallel                C64 User port

   Ground         18-25    -       A,N,1,12     GND
   Data0          2        -       C            PB0
   Data1          3        -       D            PB1
   Data2          4        -       E            PB2
   Data3          5        -       F            PB3
   Data4          6        -       H            PB4
   Data5          7        -       J            PB5
   Data6          8        -       K            PB6
   Data7          9        -       L            PB7
   Strobe         1        -       B            Flag2
   Busy          11        -       M            PA2
   Acknowledge   10        -       8            PC2


   It is very easy. Just connect the amiga port (left) to the C64 userport
   (right).  If  more  than one pin is given, then it is enough to connect
   one of them.

   The C64 user port is strange. So here comes a special viewing from the
   back side:


   1  2  3  4  5  6  7  8  9 10 11 12
   ----------------------------------
   A  B  C  D  E  F  H  J  K  L  M  N

   I think the Characters "I" and "G" were skiped, to  aviod  missreadings
   with  "1"  and  "6".  Well  today  we  have  good  glasses,  so all new
   connectors are numbered only.

   I put the cable into a gender changer box. The user  port  doesn´t  fit
   in,  so  I  used hot glue to fix it. Just let it flow over the contacts
   and into the box. After that procedure you need hard  tools  to  remove
   the  connector,  so  don´t forget to check the wires before filling the
   box.

   If you want a C64 reset switch you may assemble it into this box,  too.
   Just connect the switch between pin 1 and 3 on the C64 side.
@endnode
@node "FAQS" "Questions, Solutions and Tips!"

   @{b}Questions, Solutions and Tips!@{ub}
  ---------------------------------

   @{"Execute64 is looping on the Amiga Side!" link "FAQLOOP"}

   @{"Is it possible to enhance the C64 start of Execute64?" link "FAQQUICKSTART"}

   @{"The C64 is crashing when transfering a specific music, why?" link "FAQPSID"}

   @{"How is Execute64 running Programs?" link "FAQRUN"}

   Other

   @{"This manual is formated with centered blocks. How?" link "FAQSBLOCK"}
@endnode
@node "FAQLOOP" "Execute64 is looping on the Amiga Side!"

   @{b}Execute64 is looping on the Amiga Side!@{ub}
  -----------------------------------------

   This may happen if the C64 is switched off or reset during transfer.

   This problem should no apear very often, so if you  don´t  play  around
   with your C64 during transmission it works fine.

   The amiga is waiting for C64. So just restart Execute64 on the C64  and
   the  old  data will be flushed. (No screen flashing this time!) After a
   few seconds the Amiga part of Execute64 should return  as  normal.  And
   everything is ready for transmission.
@endnode
@node "FAQQUICKSTART" "Is it possible to enhance the C64 start of Execute64?"
@toc "FAQS"

   @{b}Is it possible to enhance the C64 start of Execute64?@{ub}
  -------------------------------------------------------

   If you own the equipment then you may burn Execute64 into an Eprom  and
   put a selfmade module into the module port of your C64. This will start
   Execute64 on each reset of you C64. You don`t need to  write  commands,
   wait until Execute64 is loaded and of course you don`t need a floppy
   or tape.

   I don`t have any schematics, but it should be very easy to  setup  such
   module.  If  you  own such plan, or created a modul then let me know or
   send me an copy.

   The other way to enhance the C64 usage is to use  a  freezer  or  turbo
   loader,  like  Action  Replay,  SpeedDos and so on. This harware in the
   most caces allows to run a program with only one  or  two  keys.  I  am
   using  an  Final-Cartridge.  Remember:  Each  time  two  keys  or `load
   "*",8,8` and `run`.

@endnode
@node "FAQPSID" "The C64 is crashing when transfering a specific music, why?"
@toc "FAQS"

   @{b}The C64 is crashing when transfering a specific music, why?@{ub}
  -------------------------------------------------------------

   It may happen that the music player (on the C64) is  crashing,  because
   the music itself is using the same memory Execute64 is using.

   Under normal circumstances Execute64 trys to  avoid  any  conflicts  by
   changing  the  music  player position within the C64 memory. Some music
   ripper are very lazy and  saving  the  hole  memory.  Well,  so  is  it
   impossible  to  say  where is a free place for the player. In this case
   Execute64 is using $0801 as base address for the player.

   The same shit happens when  a  music  is  copiing  itself  right  after
   startup.  Execute64  is unable to pre detect this. This specific musics
   shouldn´t work with other players too, expect when there  default  load
   address is not $0801, but then other tunes crash in the same way.
@endnode
@node "FAQRUN" "How is Execute64 running Programs?"

   @{b}How is Execute64 running Programs?@{ub}
  ------------------------------------

   The following methodes may be disabled by the option @{"NoStart" link "PT_NOSTART"}!

   It is also possible to define the execution address by your self.  This
   is done via @{"template" link "Execute64" 99} by using the argument @{"SYS" link "PT_SYS"}!

   @{b}Load address = $0801@{ub}

   If a  is loaded to $0801, Execute64 is  asuming  that  a  Basic
   start is correct. Execute64 is performing an "RUN".

   @{b}Load address <> $0801@{ub}

   All other loading positions are handled by using the command SYS. If  a
     starts  at  $1000  in memory, then Execute64 is performing an
   SYS4096. (Decimal 4096 = Hexadecimal 1000)

   @{b}Load address irrelevant, name contains $xxxx@{ub}

   If the file name is containing $xxxx, then  this  address  is  the  sys
   address.  The  position  in  memory is irrelevant. E.g: The "Tool$1000"
   will be started by Sys4096.

@endnode
@node "FAQSBLOCK" "FAQ: This manual is formated with centered blocks, How?"
@toc "FAQS"

   @{b}This manual is formated with centered blocks, How?@{ub}
  ----------------------------------------------------

   This question is very old. I write all AmigaGuide text  file  by  using
   GoldED.  GoldED  makes  it  very  easy.  Just  open  the "miscellaneus"
   settings and setup the fold  markings  ("\@NODE"  and  "\@ENDNODE").  Now
   you are able to open and close every node as an own document.

   But now the question. The problem is  the  link  struction  within  the
   text.  GoldEDs  internal  block  format  is  not able to detect them an
   everything is text. An a word wrap within a link  is  deadly  for  this
   link.  The  other  method is to edit the block by hand, but this is not
   very handy. (-8

   This was the reason to write @{"GuideFormat" link "OtherPrgs"}. GuideFormat  is  doing  this
   job  and  it  takes  care  about the links. I put it together with some
   GoldED commands on an GoldED hotkey. Now I can use  it  even  like  the
   internal block center command.

   I wrote all dokumentations of @{"my programs" link "OtherPrgs"}  by  using  GuideFormat.  It
   saves years of my life.

   And the text looks great!
@endnode

