Processes
          ------------------------------------------------------------------



                                                                        1-901
          Function Name: InitProcesses
          Purpose: Sets up a table of recurring timed events.
          Call address: $C103
          Input requirements:
               A          The number of entries in the table.
               $02-$03 R0 A pointer to the table of counters and routine
                          addresses.
          Description:  This routine copies a table of subroutine addresses
          and  counter  values into GEOS's tables at $872D and  $8755.  The
          counters will be decremented on each call to InterruptMain.  When
          they reach zero,  they  are reset  and the  associated routine is
          called by the GEOS main loop. The command bytes are initially set
          to  disable the  counters.  Several calls  to RestartProcess  are
          needed to start the counters running,  one for  each entry in the
          table. The table consists  of  pairs of words.  The first is  the
          address  of  the subroutine  to be executed each time the counter
          reaches zero and the  second is the  counter value.  This appears
          to be the rudiments  of  multitasking GEOS.  The table of command
          bytes  at $8719  are  bit  oriented and operate according to  the
          following table:
               Bit 7 - Timer reached zero, call the subroutine.
               Bit 6 - Disable the execution of the routine.  This does NOT
                       affect the counter.
               Bit 5 - Initially set by InitProcesses,  causes the  counter
                       to stop running.
               Bit 4 - Though  not referenced anywhere in the GEOS  Kernal,
                       this  bit also stops the counter.  This bit  is  NOT
                       touched  by  any  of the  GEOS  routines,  including
                       RestartProcess.



                                                                        1-902
          Function Name: EnableProcess
          Purpose: Forces a timed event to execute, regardless of its timer.
          Call address: $C109
          Input requirements:
               X         The index into the command byte table at $8719.
          Preparatory routines: InitProcesses
          Description:  This  routine sets bit 7 of a specific command byte
          in the table at $8719. This simulates the timer having run out.



                                                                        1-903
          Function Name: RestartProcess
          Purpose: Enables a recurring timed event.
          Call address: $C106
          Input requirements:
               X         The index into the command table at $8719.
          Preparatory routines: InitProcesses
          Description:  This routine enables a specific timer in the  table
          at $8719 by resetting bits 5 and 6 in the command table.  It also
          copies  the  initial  value into the timer table  at  $87F1.  The
          command  table  must  have been previously set up by  a  call  to
          InitProcesses.



                                                                        1-904
          Function Name: FreezeProcess
          Purpose: Stops the timer on a timed event.
          Call address: $C112
          Input requirements:
               X         The index into the command table at $8719.
          Preparatory routines: InitProcesses
          Description:  This routine sets bit 5 of a specific command  byte
          in  the table at $8719.  This prevents the associated timer  from
          running. This routine is the complement to UnfreezeProcess.



                                                                        1-905
          Function Name: BlockProcess
          Purpose: Disables the execution of a timed event.
          Call address: $C10C
          Input requirements:
               X         The index into the command table at $8719.
          Preparatory routines: InitProcesses
          Description:  This routine sets bit 6 of a specific command  byte
          in the table at $8719.  This prevents the associated routine from
          executing, regardless of its timer.  This does NOT stop the timer
          from  running.  If  the  timer  runs out  while  the  routine  is
          disabled,  when  the timer is reenabled,  the associated  routine
          will be executed. This routine is the complement to UnblockProcess.



                                                                        1-906
          Function Name: UnblockProcess
          Purpose: Enables the execution of a timed event.
          Call address: $C10F
          Input requirements:
               X         The index into the command table at $8719.
          Preparatory routines: InitProcesses
          Description: This routine resets bit 6 of a specific command byte
          in  the table at $8719.  This allows the associated routine to be
          executed when its timer runs out.  If the timer had run out while
          the routine was disabled,  GEOS will execute the routine when  it
          gets to it. This is the complement to BlockProcess.



                                                                        1-907
          Function Name: UnfreezeProcess
          Purpose: Restarts the timer on a timed event.
          Call address: $C115
          Input requirements:
               X         The index into the command table at $8719.
          Preparatory routines: InitProcesses
          Description: This routine resets bit 5 of a specific command byte
          in the table at $8719.  This enables the associated counter. This
          routine is the complement to FreezeProcess. This routine  is  NOT
          a replacement for RestartProcess.  This routine does not copy the  
          timer's initial value as does RestartProcess.