-------------------------------------------------------------------------
      Manual MAKECPX version 1.02 (C) Noud van Kruysbergen 18/05/92
-------------------------------------------------------------------------

1. Introduction

Atari's with a new TOS version do not use the old Control Panel any more, 
but  XCONTROL  is  delivered with the ST/TT.  This  accessory  can  start 
Control Panel modules,  known as CPX files. These CPX files have to use a 
special format,  and one of the things they need to have is a header with 
information  that XCONTROL uses to show the CPX module in its  selectbox. 
This  header information can not easily be created by a  compiler  and/or 
linker, but has to be build up 'manually', and afterwards concatenated to 
the  program  (or actually,  the program has to be  concatenated  to  the 
header).  Still makes sense? Information about how to create a CPX module 
can be obtained from different sources,  which do not make sense on their 
own, but do provide all the necessary information when combined together. 
The  Atari  ST-STE-TT Profibuch (Jankowski,  Rabich & Reschke)  and  some 
articles in the German ST-Computer magazin did the trick for me.

1.1 Texts

XCONTROL wants from the CPX module the following information:
- The name of the CPX module ('CPX Name').
- The text underneath the icon ('Icon Text')
- The CPX identification ('CPX ID')
- The version of the CPX module ('Version')

1.2 Graphics

XCONTROL wants the following information concerning the icon:
- The color of the 'CPX Name' text
- The color of the 'Icon Text' text and the icon
- The bitmap of the icon (32*24 pixels)

1.3 Variables

XCONTROL  finally  needs information about the status of the  CPX  module 
('Flags'):
- This CPX module only sets variables once ('Set-Only')
- Execute this CPX module at booting time ('BootInit')
- Load this CPX module into memory ('Resident')

1.4 Definitions

Please note the following definitions:  a CPX module is a module that can 
be  used  right away by XCONTROL.  a CPZ module is a CPX module  that  is 
inactivated,  and therefore not loaded by XCONTROL.  A CP module does not 
contain  the header information (yet).  A HDR file at last  contains  the 
header information and nothing else.  Summary: HDR + CP = CPX. I will not 
go  into detail about what all the information means and where it can  be 
used  for,  because  you  have to know that yourself  or  otherwise  this 
program is of no use to you!

2. The program.

MAKECPX  creates  all  this information and  allows  different  types  of 
storage.  It is now time to start the program.  All the words  introduced 
between quote-marks in the Introduction section do appear in the  dialog. 
The  CPX Name,  Icon Text,  CPX ID and Version number are editable  in  a 
normal way.  The color numbers can be changed by clicking on the  arrows. 
Remember  that  not all possible 16 colors do make sense in  all  resolu-
tions!  The Flags can be set by clicking on the button after the text  or 
by simply clicking on the text itself. If you want to edit the icon click 
on  the  'Edit' button.  A new dialog will appear with  a  32*24  bitmap. 
Drawing  the icon is rather straightforward.  The color you  are  drawing 
with can be seen in the 'Operators' box. You can shift the icon up, down, 
left  or right,  flip it horizontal or vertical,  invert or clear  it  by 
selecting  the proper buttons.  The color can be changed by  pushing  the 
rigth mouse button.  You can also load or save the icon (as a ICN  define 
file,  which is supported by RCS2.PRG and Degas Elite for  instance).  In 
this dialog the buttons are also selectable by pressing a key:

Load : 'L'       |Save : 'S'       |X : 'X           |Y : 'Y'
Up : Up arrow    |Down : Down arrow|Left : Left arrow|Right : Right arrow
Color : C        |Invert : I       |Erase : 0        |Cancel : Undo

'Cancel'  will undo all the drawing done and return to the first  dialog, 
'Main' will keep the changes (if any) made to the icon.

You  can  load the header information from a separate header  ('HDR')  or 
extract it from a CPX module ('CPX').  All the information will be  shown 
and is ready for changes.  After the changes are made or a new header  is 
created it can be saved as a header only ('HDR'),  it can be stored to  a 
CPX  module ('CPX') or a new CPX module can be created out of a  CP  file 
('PRG -> CPX').  Note that in the latter case the program asks for a  PRG 
file  and not for a CP file as one would expect.  This is mainly  because 
compilers and/or linkers don't know about CP(X)s.  Just create a PRG  and 
MAKECPX will add the header and change the name to CPX.  A new CPX module 
is then born.
Note: N_PCSHEL.PRG is a GEM shell for Pure C which offers the possibility 
to  use other editors (like TEMPUS) with Pure C,  and also  supports  CPX 
modules.

3. About the program

MAKECPX  is  written  in  (Pure) C,  and  is  independent  of  resolution 
(although  you'll  have  a  problem  with  the  ST  low  resolution)  and 
independent of processor. The version 1.02 is the first official release; 
version 1.01 is the same except it uses a separate resource file.

As far as I know there are no bugs;  the program is programmed in a  very 
neat  way  using GEM conventions where necessary.  I can not  accept  any 
responsibility for the (mis)use of this program however.

MAKECPX is a Public Domain program,  meaning that you may copy it and use 
it for free.  If you actually use and like it I would like some reward in 
the  form of a postcard (I will not ask for shareware fees or  money  for 
sources  and the like since I gave up getting rich a long time  ago).  If 
there are any wishes, complaints or remarks please let me know.

Have fun.

Noud van Kruysbergen
Nijmegen Institute for Cognition and Information
University of Nijmegen
PO Box 9104
6500 HE Nijmegen
the Netherlands
email:kruysbergen@nici.kun.nl

