             ************************************************************
                                                                       *
           _/_/_/  _/_/_/    _/_/_/   _/_/_/   _/    _/              **
          _/      _/   _/  _/       _/    _/  _/_/  _/             ***
         _/_/_/  _/_/_/   _/  ___  _/    _/  _/ _/ _/           *****
        _/      _/   _/  _/   _/  _/    _/  _/  _/_/         *******
       _/_/_/  _/   _/   _/_/_/   _/_/_/   _/    _/       *********
                                                        **********
                                                      ***********
    **********************  Freeware software ******************

                             NICE 1.2 & PICE 2.0

                NICE = smooth multitasking under heavy load
                PICE = partially buried window redrawn

                    Documentation v1.4 - 24 July 1995

Davide Santachiara              Fidonet 2:332/811
Via Emilio De Marchi 2          Internet madmax@prix1.pr.infn.it
42100 Reggio Emilia ITALY
Phone/fax       +39 522 300409  fax calls only 10:00 to 15:00 local time (CET)
BBS/fax         +39 522 300509  only 22:00 to 03:00 local time (CET)

Marco Ternelli                  Fidonet 2:332/811.1
Via Roma, 12
42014 Castellarano RE Italy

>>> P.I.C.E by Marco Ternelli
>>> Documentation by the Ergon team
>>> version 1.4


[] Introduction

PICE (standing for "nICE Pointer environment") is a partial window
redraw utility for QDOS systems which update the internal PE
window save buffer in background: i.e. you need PIE or PEX.

So it covers the gap still missing between our multitasking environment
(QDOS+PE+PIE/PEX) and other environments with poor multitasking
capabilities but complete screen redrawing (such as Win 3.1).

It is a small routine (14 Kb, roughly 80% for data structures)
that links a new PICE keyword. The PICE command starts a job
that keeps running in the background and updates visible parts
of buried windows. The job can then be removed, if needed, with
standard RJOB commands or menus. It is possible to trade
redrawing smothness and system overhead giving a couple of
parameters to the PICE command. Overhead is quite good on a SGC.
It depends very heavily, however, on the number of windows to be
redrawed and the number of overlapping windows. A simple test
done on a background print on a partially covered window (and
PICE set for a simpler redraw) has shown a 9% overhead for a
window refresh every 3/50 of a second and only 2% overhead for
screen update every 10/50.

It works also very well with NICE (my routine for smooth keyboard & mouse
operations). If NICE is also loaded, when interacting with the
computer it suspends also PICE, so computer response is always
very good.

Please note that while SMSQ new screen driver will require at
least a Gold Card system PICE can work even on a 640Kb or Trump
Card QL.

I think PICE & NICE together make QDOS much nicer and
impressive....


[] Using PICE

PICE Requires:

Pointer Environment
PIE o PEX (so it works only under Minerva or Atari E-drivers)

To install it type something like

LRESPR pice_rext <ENTER>


Invoking forms:

PICE x,y <ENTER>
PICE     <ENTER> In this case it uses the last x,y values
                 entereed. Default 3,50

Please remember to remove the PICE job before re-issuing the
PICE command.

x > Time between two redrawing of active jobs in 1/50s (default
    3/50s)
y > Time between two global redrawing in 1/50s (default 1s)

** The second parameter specifies the time between the forced
   redrawing of job's primary windows which are partially
   covered. In fact to avoid a too high overhead PICE
   "standard redrawing" considers only the jobs which are active
   (or that have been just suspended). So it could happen
   that the windows of a job are not redrawn simply because it
   is activated only for a very short time (example CVIEW of
   Jonathan Hudson). So to avoid a loss of information PICE
   makes every 1s (default y value) a global redraw of all the
   windows which are partially overlapped.

Obviously lowering these values the system speed will be lowered
a lot (which means greater PICE overhead). Increasing them the
system speed will be higher. Ie roughly same speed as using the
QL without PICE (which means lesser PICE overhead)


Limitations:    - max 100 jobs (can be increased easily though).
                - The pointer is deleted if you move it on a
                  part of screen which is redrawn (small
                  esthetic problem).

To kill PICE remove the job PICE #:-) To re-install PICE just
type PICE <ENTER> again

PICE has has been tested on

- Atari & QVME + QDOS emulator (thanks to Emiliano Barbaini
                                who lent me a Mega STE & QVME)
- Atari & SMS2 (thanks to Graham Goodwin for lending me an SMS2 cartridge
                and to Emiliano for Mega STE & QVME)
  Requires LBASIC or RUNBAS to compile the Basic command PICE
- Atari & QVME with 68030 accelerator board (tested by Ralf Rekeondt)
- Minerva QL with Super Gold Card
- Minerva QL with Gold Card
- QXL 68040 with SMSQ 2.57

... Please report us where it works or doesn't....





>>> NICE v1.2 by M.Ternelli
>>> Documentation by the Ergon Team
>>> Smooth multitasking on QDOS/MINERVA


[] Introduction

As you have surely noted, keyboard operations on a QDOS system
running number  crunching tasks in the background are usually
difficult, due to the bad system response time. On SMS2 and
SMSQ this is much better, as the scheduler has been rewritten to
be more user friendly even with heavy machine load.

NICE is a simple utility to overcome the lack of smothness in
keyboard operations of a heavily multitasked QDOS/SMS system
(yes, it is very useful also with SMSQ/SMS2). It has no special
hardware requirements (SMSQ needs at least a GC) adds little
overhead to the system and gives very good response time. It
works by making QDOS (almost) single-task exactly in the moments
you are interacting with applications and multitasking as
usually elsewhere. This means response time is very good when
you are interacting with the system and no performance loss when
you are not. The only add is NICE overhead time, quite low.

Current version (a QLIBerated SuperBASIC program) has been
tested on SGC,  Atari QDOS, QXL with SMSQ v2.16/v2.25/v2.31
and seems working well (even on an 8 MHz 68000 Atari results are
quite good).

Nice has also a "pointer sensitivity" option to make it working
also with PE software and mouse, so it can be the natural
complement of PIE or PEX.

Please note that while SMSQ requires at least a Gold Card system
NICE can work even on a 640Kb or Trump Card QL.


[] Using NICE

Good keyboard response under heavy system load.

Requires

Pointer Environment
Q-Liberator runtimes
Easymenu extension optional (WMOV - to move NICE window)

Just type something like EXEC nice_obj <ENTER>

A window will appear. Now NICE is working. If you type a key
from the NICE's window you can alter some of NICE's internal
parameters. Here are the most important ones:

g       > go = nice is working

t [n]   > time (in 1/50sec) required to suspend all the jobs
          running in case a key has been pressed or the pointer
          has been moved. Default 3;

a [n]   > time (in 1/50 sec) after which suspended jobs are
          released when interaction with the user has stopped.
          Default 2;

c [n]   > "bonus" time (in 1/50 sec) which is given
          to interactive jobs or newly created ones before they
          are suspended when there is interaction with user.
          Default 0.

p 0     > pointer sensitivity disabled

p 1     > pointer sensitivity enabled (can give small
          esthethic problems like pointer which disappears):
          this allows to have smooth multitasking moving the
          pointer. It is enabled as default if the PE is present

l       > list parameters

w       > move the nice window (requires WMOV from Easymenu
          extensions)

x       > kill NICE job and releases all the job (if they were
          suspended). It is better to use this option instead of
          RJOBbing NICE.

The three parameters which affect NICE behaviours are
"t", "a" & "c".

In case of high NICE overhead try increasing "t". Istead if
the keyboard-response is slow, lower it.

Lower "a" if you want a faster re-activation of suspended jobs
after an interaction with the user. In this way you will make
the most from processor time. But especially on slow machines
smoothness could deteriorate especially when using interactive
jobs (eg. pointer menus, games like Minefield...)

The "c" parameter delays the suspension of a job which
usually does not consume processor time or a job which
has been just created. In this way it has time to initialise
itself. This could improve the response of service jobs (like
buttons).

NICE uses slightly modified versions of MTRAP, QTRAP, REG from
DIY toolkit of Simon Goodwin.


[] License

You can freely copy Nice & Pice but you myst include all
the documentations and programs without alteration. Rights
remains of the authors and modification can only be
performed with the consent of the author. Sale is forbidden.
This program may be put on BBS or PD libraries on condition that
the final cost does not exceed disk and p&p costs.


[] Donation

If you find these program useful why not make a small donation
to Marco Ternelli ? If you have not money at least send him a
post-card so that you will be stired up to produce other
freeware quality software for QDOS / SMS. Marco's address is
reported at the beginning of this document.


[] Problems / Hints

Best thing is to put a message on BBS in the QL International
Area. Otherwise fax or write to Davide Santachiara.


END OF TEXT
