/*      FILE HANDLER ROOT COROUTINE

        The file handler is created and started by
        the CLI initialisation code during system
        start-up or by the LOAD command.

        The format of the start-up packet is:
                Type    0
                Arg1    Action.StartUp
                Arg2    Disc device id.
                Arg3    Disc unit no.
                Arg4    Initial no. of cache slots
                Arg5    Environment vector

        STARTING is called to initialise the
        handler. It also creates and passes control
        to the handler coroutines.
        If control is regained, the COWAITing coroutine
        is deleted and the task commits suicide.
*/


SECTION "ROOT"


GET "LIBHDR"

GET "FH2HDR"


LET Start(StartUpPacket) BE
$( // Create, call and delete the initialisation coroutine
   DeleteCo(CallCo[CreateCo(Starting, 112), StartUpPacket])

   endtask(handler.segment)
$)