home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / utility / system / winx21 / winx21.eng < prev    next >
Text File  |  1993-09-09  |  24KB  |  447 lines

  1. PROGRAM
  2.      WINX 2.1 [9/9/1993]
  3.  
  4. DESCPRITION
  5.      WINX expands GEM of TOS version up to version 4.04 to some of the
  6.      features which also are usable in MultiTOS. From users point of 
  7.      view this is (among other stuff) for example more windows, control
  8.      elements for background windows and an expanded user interface
  9.      (this relates to the usage of control elements). Additionally
  10.      some bugs and deficiencies of the different GEM versions have been
  11.      removed or repaired and expansions have been built in. A very
  12.      developer friendly function is a mode to let WINX check for
  13.      improper calls of the AES window library.
  14.  
  15.      Theoretically, ALL 'clean written' 'well-behaved' GEM programs
  16.      should get along with these changes easily, but the practical side
  17.      is slightly :-) different. Even TOS internal GEM Desktop had to be
  18.      changed for some reasons. Please be sure, that if one of your
  19.      programs will have several problems with WINX, it also has very
  20.      good chances to have problems with MultiTOS, too. It would be a
  21.      good idea to give a hint to the authors to test the program with
  22.      WINX and to let them get into contact with ATARI to let them be
  23.      informed how to legally get MultiTOS for testing purposes.
  24.  
  25.      WINX will integrate an expanded user interface into GEM if the TOS
  26.      version is greater than 2.xx. This changes the way of mouse usage:
  27.      Starting with this version of WINX, both mouse buttons can be used
  28.      to select the window control elements. The right button will induce
  29.      action, that is started after release of the button. If the left
  30.      mouse botton is used, action is performed immediately and as long
  31.      as the mouse button is not released again. You can recognize this
  32.      state by a change of the mouse form: The arrow looses its shaft.
  33.      A good example for this is the moving of a window. If you select
  34.      the move bar of the window with the right mouse botton, then a
  35.      frame is drawn which can be moved to a different position. Only
  36.      after releasing the mouse button the window is redrawn at the new
  37.      position. If you use the left mouse button to select the move bar,
  38.      the window is redrawn constantly just where the mouse moves. The
  39.      same behavoiur holds for the usage of the sizer, closer, full-size
  40.      box and scroll bars.
  41.  
  42.      Action started by klicking the scroller arrows of into the 
  43.      scrollbar did not change. They already and always leaded to direct
  44.      response of the program. Aditionally, a clicking on the scroller
  45.      arrows with the right mouse key sets the scrollbar to the start
  46.      (or end) of the scrollable area. If you click into the scrollarea,
  47.      the scrollbar is directly put to this position.
  48.      
  49.      Another new feature is an addition for handling a click on the
  50.      title bar of the window. Up to now, this could only top a back-
  51.      ground window. Now it also is possible to backdrop windows, if a
  52.      program can already handle the newly defined message.
  53.  
  54.      The CONTROL key is a modifier for actions which are performed by
  55.      clicking window control elements. If CONTROL is pressed while the
  56.      mouse click is performed, the normal meaning of the control
  57.      elements is lifted away. Instead of this, the window is put into
  58.      front or background. This is very useful if a window is only
  59.      partly visible.
  60.  
  61.      If CONTROL is pressed while the right mouse button is released,
  62.      the action that SHOULD be performed is ignored. For example if you
  63.      started to move a window, but then again prefer to leave it at the
  64.      previous place.
  65.  
  66.      Here is a list of the changes/expansions WINX does install into
  67.      GEM. In detail
  68.  
  69.         '*'     stands for new stuff in this version
  70.         '[G..]' or
  71.         '[L..]  stands for a flag which indicates, that this
  72.                 feature can be activated or switched off
  73.                 (see part CONFIGURATION in this text)
  74.  
  75.      Unfortunately this part of manual might be very technical - it
  76.      is despite of that a good idea to read it at least once, because
  77.      you otherwise will miss some features of WINX.
  78.  
  79.      GEM-SCRENMGR:
  80.      (the part of GEM, which besides other things deals with clicks on
  81.      window elements)
  82.      - [L1] use control elements for background windows
  83.      * [G10] BackDrop function: By clicking on the title bar of the top
  84.        window it is put to the backgorund (disabled), if the application
  85.        supports the backdrop message or only one window is open.
  86.      * [G9] if you hold the CONTROL key while performing a click on a
  87.        window control element, the meaning of the control element is
  88.        disabled. Instead of the normal state, a background window gets
  89.        topped or a topped window is set into background (if BackDrop is
  90.        turned ON)
  91.      * Repeat for scroll arrows for TOS 1.00
  92.      * Fixed AES problems with WM_ARROWED messages (ARROWFIX patches)
  93.        These are:
  94.        TOS >= 1.04:   Doubly sent message
  95.        TOS 2.06/3.06: Doubly sent message, delayed message, wrong overlength
  96.        TOS 4.01-4.04: Doubly sent message, delayed message
  97.        ARROWFIX.ENG (part of ARROWFIX) tells you details.
  98.      - optical response for usage of control elements
  99.        [G4] Selection of scroll arrows
  100.        [G5] Selection of scroll bars
  101.        [G6] Selection of mover element
  102.        [G7] Selection of sizer element
  103.      * [G2] Send right mouse button clicks on window frames
  104.        to the SCRENMGR (otherwise to the application)
  105.      * [G3] Left mouse button click activates realtime functions
  106.        (otherwise: G2=ON: right mouse button click, G2=OFF: double
  107.         click with left mouse button)
  108.      * [G11] It's now possible to move windows beyond the left
  109.        border of the screen
  110.  
  111.      GEM-DESKTOP:
  112.      - handling of events for background windows
  113.      * Integration of backdrop
  114.      * topping and untopping of windows does no loger change the
  115.        selected files in directory windows of NEWDESK from TOS 2.x/3.x
  116.      - TOS 2.x/3.x Desktop handles 8 instead of 7 windows, TOS 1.x
  117.        only 4, as always.
  118.      - If scrolling is performed in background windows, the desktop
  119.        tries only to newly display as little as possible and copy as
  120.        much as possible.
  121.  
  122.      Window management:
  123.      - [G1] Increase number of available windows to 40 (instead of 8)
  124.      - [L1] use control elements for backed windows
  125.      - [L2] minimise number of window frame elements (up to now, a
  126.        window with a sizer always had a horizontal and a vertical bar,
  127.        which does not neccessarily makes sense)
  128.      - [G8] wider frame for slider elements on the window frame (very
  129.        much discussed option :-) similar to old MultiTOS versions)
  130.      * Window Colors for TOS 1.xx can be set with WINCOLOR.CPX. This
  131.        CPX is in the humble opinion of the author, anyway preferably
  132.        to be used instead of the original WCOLOS.CPX, even for
  133.        TOS 2.xx/3.xx.
  134.      * Improved redraw for windows (new display of frame and contents)
  135.      * Activating (and deactivating) does not change the WF_PREVXYWH-
  136.        rectangle of the window any more. In this rectangle, the most
  137.        recent change of position and size of the window is placed.
  138.      * [L3] Opening and topping a window send WM_ONTOP, backdrop and
  139.        closing WM_UNTOPPED
  140.      * only one object tree is used to display the background
  141.      * wind_set has been modified (optimized WF_SLIDE routine;
  142.        WF_BOTTOM; WF_BEVENT)
  143.      * wind_get has been modified (WF_NEWDESK; WF_BEVENT; WF_BOTTOM;
  144.        WF_OWNER; WF_TOP; WF_COLOR; WF_DCOLOR)
  145.      - modification of wind_calc for the changed way window frames are
  146.        built
  147.      * completyly new module for the calculation of rectangle lists,
  148.        which can optimize calculation time and number of rectangles
  149.      * [L4] Optimized redraw for topping windows:
  150.        For topping and closig of a window, if possible only the parts
  151.        of the newly topped window are newly displayed. Unfortunately
  152.        this leads to incomplete redraws for some applications.
  153.      * [L5] Optimized redraw for moving windows:
  154.        If this switch is set, all visible parts of the window are
  155.        copied, and redraw messages are only sent for the rest of the
  156.        rectangles. Eventually redraw messages have to be merged, this
  157.        can force redraw for copied areas.
  158.      * [L6] Optimized redraw for sizing windows:
  159.        If this switch is set, applications get only redraw messages
  160.        for the newly visible parts of the window.
  161.      * [L7] Optimized merging of redraw messages:
  162.        With all curent TOS Versions, the number of redraw messages
  163.        per window that was stored in the message buffer of the
  164.        application was limited to one. If a second message had to be
  165.        stored, the redraw rectangle of the first message was replaced
  166.        with a rectangle, that contained a rectangle which held the
  167.        retangles of the old and the new message. MultiTOS does NOT
  168.        merge these messages any more. Both solutions have limitations.
  169.        WINX implements the usage of a compromise. WINX only merges two
  170.        redraw messages if the resulting rectangle is not bigger than
  171.        25% of the sum of both single rectangles. Furthermore the
  172.        applications can store two redraw messages per window now.
  173.      * [L9] There are two ways, how the scroll arrows can be displayed
  174.        in the frame of a window now: At top/bottom leftmost/rightmost
  175.        position of the scrollbar or all just besides the other in the
  176.        rightmost downmost edge of the window frame.
  177.      * It now is possible to only use wind_update if no other program
  178.        already owns control. Additionally wind_update is checked for
  179.        underflow.
  180.      - all other routines have been modified to be able to handle the
  181.        increased number of windows
  182.      * [G11] 3D window frame (starting with GEM 3.31)
  183.  
  184.      Various:
  185.      - enlargement of the message buffer of an application from 8 to
  186.        40 standard messages (this can highly help avoiding deadlocks
  187.        of AES)
  188.      - The wait time for a mouse click has been set to exactly be the
  189.        same as the setting of the doubleclick time. In all current
  190.        versions of GEM, there is no consistant handling of the
  191.        duration beetween a mouseclick of the user and the procession
  192.        of it by the SCRENMGR. Up to now, the duration is dependant
  193.        from the question, if minimum one application or accessory waits
  194.        for a doubleclick event or not. The usage of the doubleclick as
  195.        a timebase is necessary, because otherwise, in case of a click
  196.        on a title element of a backed window, moving and topping could
  197.        not always be distinguished
  198.      * TIMER/BUTTON problem for evnt_multi() has been fixed, this means
  199.        you only get the button event, if the application owns the mouse
  200.      * support for WF_BEVENT flags during the mapping of button events
  201.        to applications
  202.      * TOS 1.xx: Now the dynamically requested structures for
  203.        administration of accesories are explicitly cleared (as in newer
  204.        TOS versions). This avoids problems with AUTO folder programs,
  205.        which might have used these parts of memory already in the boot
  206.        phase (leaving garbage there).
  207.      * [G12] Fill patterns for GEM objects now always will be drawn
  208.        relative to the left topmost edge of the object (instead of
  209.        being relative to 0/0 of the current screen).
  210.      * Now also for TOS 1.00 and 1.02, the name of the active
  211.        application is reset every time the internal Desktop is started.
  212.      * [L8] If this switch is switched ON, WINX displays an Alert every
  213.        time where an application tries to call OS window functions with
  214.        wrong parameters.
  215.      * [G13] If a program B is started from the currently running
  216.        program A, now the name, GEM recognizes as the currently running
  217.        appliction, is set to be B. At the point of termination of B,
  218.        the name is reset to A. This makes appl_find() work correctly
  219.        also in the above case. (Up to now, A has been found instead
  220.        of B).
  221.      * wind_new() now sets the ownership of mouseclicks to the main
  222.        application (instead of setting it to the SCRENMGR). This avoids
  223.        the loss of the first mouse click on a desktop object after an
  224.        application has been terminated.
  225.      * A call of wind_unpdate( BEG_UPDATE) has been inserted into the
  226.        wind_new() call. wind_new() is used by the desktop to clear up
  227.        the screen after termination of applications. The insertion of
  228.        wind_update() helps to avoid, that accesories are affected by
  229.        this at an unfavorable time.
  230.      * A bug in the mechanism of the task dispatch in GEM 3.xx has
  231.        been fixed. This should suppress (possible harmful) task
  232.        switching during the display of alerts generated from the
  233.        critical error handler.
  234.  
  235. INSTALLATION
  236.      To do all these changes, WINX must deeply take control of the
  237.      working of AES and GEM. The necessary changes can be achived with
  238.      three methods:
  239.  
  240.      a) Patching a copy of GEM in RAM
  241.           You install a copy of GEM in the machines RAM at BOOT time
  242.           which is modified by WINX before GEM is started. This can be
  243.           achieved with one of the following programs.
  244.  
  245.           Name; Description; where to get; author; RAM used; uses cookie
  246.  
  247.           ROMRAM    TOS speeder for TT030;
  248.                     Mailbox Maus HH2 (Freeware);
  249.                     Alexander Herzlinger; >256 KB; PTOS
  250.           VRAM030   Virtual memory management for TT030 and FALCON030;
  251.                     OverScan, D-12277 Berlin;
  252.                     Alexander Herzlinger; >256 KB; VRAM
  253.           ROMSPEED  TOS speeder for TT030 (Part of OUTSIDE virtual
  254.                     memory mangement for TT030);
  255.                     MAXON Verlag; D-65734 Eschborn;
  256.                     Uwe Seimet; >256 KB; USRS
  257.           GEMRAM    Install GEM in RAM (ST,TT,FALCON);
  258.                     Mailbox Maus MTK (Freeware);
  259.                     Martin Osieka; 80-200 KB; MOGR
  260.  
  261.      b) Patching a TOS file
  262.           You can use WINX to modify your ROM contents to be feasible
  263.           to be burned into EPROMs and reinstall a changed TOS version
  264.           including the WINX patches in your machine. This only works
  265.           with ORIGINAL unmodified (c) ATARI ROMs and is only allowed
  266.           for your personal use - you may not distribute ROM Image
  267.           files nowhere, neither modified nor unmodified.
  268.           To get ready to burn files, just start WINX in the desktop
  269.           or load in an original TOS Image file. After WINX changed
  270.           the contents, you can save it again for burning it.
  271.  
  272.      c) Patching single GEM routines
  273.           If you have a machine with Original TOS 1.00, 1.02 or 1.04,
  274.           you can use WINX without copying GEM to RAM with GEMRAM.
  275.           Even here WINX.PRG must be in the AUTO folder. At the time
  276.           GEM is started, WINX intercepts the GEM startup and only
  277.           installs some (ok, these are some more) routines in RAM.
  278.           This is not possible with later TOS releases due to a
  279.           change (a very positive change) in AES and Desktops
  280.           subroutine calling mechanism. The modified GEM-routines
  281.           use only about 16 kByte of RAM.
  282.  
  283.      In addition to the amount of memory for the RAM copy of GEM or
  284.      the RAM copy of GEM routines, WINX needs about 20 kByte for
  285.      the additional GEM-window structures.
  286.  
  287.      WINX has been modified to work with the following official GEM
  288.      versions:
  289.  
  290.         GEM(AES)   TOS
  291.           1.20     GER 1.00/1.02
  292.           1.40     GER 1.04/1.06/1.62
  293.           3.00     GER 3.01
  294.           3.10     GER 2.05/3.05
  295.           3.20     GER/UK 2.06/3.06
  296.           3.31     4.01
  297.           3.40     4.02-4.04
  298.  
  299.      WINX identifies GEM by the length of the GEM-TEXT-Segment.
  300.      GEM Versions of foreign/unknown countries are accepted if the
  301.      length is identical.
  302.  
  303. CONFIGURATION
  304.      Most of the changes WINX can do with GEM, can be turned on and off
  305.      with 'switches'. The setting of those switches can be changed by
  306.      changing the configuration file WINX.INF, which HAS to be in the
  307.      AUTO folder also. This is an ASCII file which can be easily 
  308.      changed using a text editor.
  309.  
  310.      Beginning with WINX version 2.1 global and local switches can be
  311.      distinguished. Global switches have effect for all applications,
  312.      whereas local switches can be set individually for each 
  313.      applications. All further description can be seen from WINX.INF.
  314.  
  315.      For the near future, all these settings should be able to be
  316.      performed with a CPX-module, but the enlightenig spark how this
  317.      can be done in a really user-friedly way did still not come
  318.      across my mind.
  319.  
  320.      The repeat times of closer, full-size box and scroll arrows
  321.      can be set via WINX.CPX, too.
  322.  
  323. TERMINATE AND KEEP RESIDENT
  324.      WINX is a TKR-program and made of a TKR-loader, in which the
  325.      TKR-module 'WINX.TKR' has been inserted. The concept of TKR is
  326.      that programs, which need resident memory (TKR-modules), get this
  327.      amount of memory given from another program (the TKR-loader).
  328.      Following this concept, the TKR-module can be concentrated to its
  329.      real work and only uses a minimum of memory. The used TKR-Loader
  330.      can contain an unlimited amount of TKR-modules and other programs.
  331.      If you press the SHIFT-key while the TKR-Laoder is started, the
  332.      loader asks for each TKR module if it should be started. The TKR-
  333.      loader displays the amount of memory that will be kept resident
  334.      after end of installation.
  335.  
  336. KNOWN PROBLEMS
  337.      - some older pprograms use the window handle as an index for own
  338.        internal tables; this of course is really bad programming style
  339.        and can cause those programs to crash while using many open
  340.        windows.
  341.      - Some programs limit their own acess to windows by a fixed number
  342.        without having a good reason (for example the original desktop).
  343.      - WINX Versions before 2.0 crashed, if a programme die used the
  344.        window handle -1 (NOWINDOW). This is fixed now.
  345.      - TOS14FIX only can be installed after WINX.
  346.      - TEMPLMON Versions < 2.0 must been started before WINX.
  347.      - Many programs cannot cope with the correct redraw of
  348.        background windows, mostly the scrolling in partly overlaped
  349.        windows quite often makes problems.
  350.      - MultiGEM will only allow 10 windows per application.
  351.      - WINX 2.1 will only be be supported by MultiGEM 2.00 (year of
  352.        copyright 1993!) (also see Update hints in MultiGEM Manual)
  353.      - since MultiGEM uses its own mapping of window handles, some new
  354.        wind_get() modes return wrong values:
  355.          WF_OWNER, WF_BOTTOM, WF_TOP (for owner and belowwin)
  356.      - BackDrop only works completely, if it is supported by the
  357.        used programs.
  358.      - Some graphic cards (i.e. their VDI-Driver) obviously have
  359.        problems with userdefined patterns. In this case, the switch
  360.        for defining relatively to which point a fill patterns should
  361.        be displayed, should be set to 0/0 and the maker of the card
  362.        and driver should be asked to change his software.
  363.      - If the switch for setting the fill pattern drawing to be
  364.        relative to the object is turned off, objects of windows are
  365.        always displayed completely. In addition to this, it might be
  366.        neccasary to switch off the redraw optimisation (for example
  367.        for XCONTROL)
  368.      - If a program opened very many windows (>20) there might be a
  369.        problem if the optimized merging of redraw messages is active
  370.        [L7] and the screen has to be displayed completely new.
  371.      - At the time exiting an application, GEM closes the windows of
  372.        accesories automatically. In some (seldom) cases, accessories
  373.        are not getting the information about the termination in time,
  374.        so they try to access windows, that already do not exist any
  375.        more. If WINX is set to report wrong window library calls, an
  376.        error message is displayed. The problem behind this is
  377.        conceptual in GEM. To avoid the display of those error messages
  378.        switch of the error report feature of WINX.
  379.  
  380. IMPORTANT NOTES FOR PROGRAMMERS
  381.      (see file WINXPROG.ENG)
  382.  
  383. VEKTORS, COOKIES, ETC.
  384.      In case c) under installation the LineF-Vektor is changed
  385.      (XBRA-ID is AESF).
  386.      WINX (and WINXCOOK, the support program for a WINX modified ROM)
  387.      generates the cookie WINX starting with version 2.1 of WINX. The
  388.      cookie holds a pointer to a function that can return version
  389.      specific information about WINX.
  390.  
  391.      If the WINX cookie is installed, the GEMDOS trap is intercepted
  392.      on start of GEM (XBRA ID is WINX)
  393.  
  394.      GEMRAM tries to find out the language for its messages looking at
  395.      the OSHEADER, after this, the _AKP cookie is checked (if existing).
  396.      On start from Desktop, the environment variable AE_LANG is
  397.      additionally checked. If the returned language is different from
  398.      german, english messages are used. The display format for the
  399.      date is derived from the _IDT cookie and if this cookie does not
  400.      exist, from the language setting.
  401.  
  402. COPYRIGHT
  403.      Author:     (\/) Martin Osieka
  404.      Adress:     Martin Osieka, Erbacherstr. 2,
  405.                  D-64283 Darmstadt, Bundesrepublik Deutschland
  406.      Internet:   Martin_Osieka@mtk.maus.de
  407.  
  408.      If you write letters and would like to get an answer, please do
  409.      not forget to submit a self-adressed envelope with enough
  410.      international answer coupons or german stamps.
  411.  
  412.      WINX is freeware and may be distributed in ANY form as long as
  413.      program and all texts are distributed in a complete, unmodified
  414.      form. The files are:
  415.  
  416.      WINX.PRG, WINX.CPX      patch program und configuration CPX module
  417.      WINXCOOK.PRG            help program for WINX modified ROM
  418.      WINX.GER, WINXPROG.GER  documentation (german)
  419.      WINX.ENG, WINXPROG.ENG  documentation (english)
  420.      WINX.UPL                upload-description (german)
  421.  
  422. WARNING
  423.      This program worked stable and normal behaved for some time in
  424.      my own programming environment. Besides all tries to avoid bugs
  425.      in development and testing you have to be aware, that this is
  426.      based on the analysis of internal GEM Code. GEM has parts, but
  427.      I wouldn't claim that, what I saw 'structured'. For this reason
  428.      it easily may happen, that someone misses a point somewhere.
  429.      And this is in fact VERY easy. For this reason, I include the
  430.      following message:
  431.  
  432.      *********************************************************************
  433.      * THIS PROGRAM COMES WITH ABSOLUTELY NO WARRANTY AGAINST MISUSE,    *
  434.      * DATA LOSS, BRAIN DAMAGE, EARTHQUAKE AND WHATEVER MAY HAPPEN       *
  435.      * BEFORE/AFTER OR WHILE USING IT. IT IS ABSOLUTELY *YOUR OWN* RISK. *
  436.      *********************************************************************
  437.  
  438.      This cannot be emphazised enough, if you indeed use this program
  439.      together with dirty programming trick software.
  440.  
  441. MANY THANKS TO
  442.      Normen B. Kowalewski for translation of main parts of this document
  443.  
  444. SEE ALSO
  445.      Documentation of GEMRAM, ARROWFIX and WINCOLOR
  446.      
  447.