DataMuseum.dk

Presents historical artifacts from the history of:

Bogika Butler

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Bogika Butler

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦28bda6790⟧ TextFile

    Length: 4480 (0x1180)
    Types: TextFile
    Names: »KERNEL.PAS«

Derivation

└─⟦08e5746f0⟧ Bits:30009789/_.ft.Ibm2.50007359.imd Mogens Pelles Zilog 80,000 / EOS projekt
    └─⟦this⟧ »KERNEL.PAS« 

TextFile

(*
***********************************************************************
*                       Copyright 1984 by                             *
*                       NCR Corporation                               *
*                       Dayton, Ohio  U.S.A.                          *
*                       All Rights Reserved                           *
***********************************************************************
*                       EOS Software produced by:                     *
*                       NCR Systems Engineering - Copenhagen          *
*                       Copenhagen                                    *
*                       DENMARK                                       *
***********************************************************************
*                       EOS Software rewritten by:                    *
*                       Metanic Aps.                                  *
*                       DK-3660 Stenloese                             *
*                       DENMARK                                       *
*                                                                     *
*                       Copyright 1986 by Metanic Aps.                *
***********************************************************************
*)
PROGRAM EosKernel;

(*$I B:COMDEF.PAS *)
(*$I B:COMDEF2.PAS *)
(*$I B:KNELVAR.PAS *)

   (* Miscellaneous procedures *)

      FUNCTION PtrVal(
         (*UNIV*) x: AddressType): AddressType;

        BEGIN
         PtrVal := x
        END;

      FUNCTION MemRecPtr(
         (*UNIV*) x: MemRecPointerType): MemRecPointerType;

        BEGIN
         MemRecPtr := x
        END;

      FUNCTION LdMdPtr(
         (*UNIV*) x: LoadModuleHeaderPointerType): LoadModuleHeaderPointerType;

        BEGIN
         LdMdPtr := x
        END;

      FUNCTION ChainPtr(
         (*UNIV*) x: ChainPointerType): ChainPointerType;

        BEGIN
         ChainPtr := x
        END;

      FUNCTION LdMdObjDscPtr(
         (*UNIV*) x: LdMdObjDscType): LdMdObjDscType;

        BEGIN
         LdMdObjDscPtr := x
        END;

      FUNCTION LdMdHdrPtr(
         (*UNIV*) x: LdMdHdrPtrType): LdMdHdrPtrType;

        BEGIN
         LdMdHdrPtr := x
        END;

      FUNCTION LdMdLDSDPtr(
         (*UNIV*) x: LdMdLDSDPtrType): LdMdLDSDPtrType;

        BEGIN
         LdMdLDSDPtr := x
        END;

      FUNCTION LdMdLSDPtr(
         (*UNIV*) x: LdMdLSDPtrType): LdMdLSDPtrType;

        BEGIN
         LdMdLSDPtr := x
        END;

      FUNCTION GePtr(
         (*UNIV*) x: GePtrType): GePtrType;

        BEGIN
         GePtr := x
        END;

      FUNCTION SuPtr(
         (*UNIV*) x: SuPtrType): SuPtrType;

        BEGIN
         SuPtr := x
        END;

      FUNCTION PointerPtr(
         (*UNIV*) x: PointerPtrType ): PointerPtrType;

        BEGIN
         PointerPtr := x
        END;

   PROCEDURE Error(ErrorCode: integer); (* comdef *)

     BEGIN
      REPEAT
         (* *** Enable system mode and set interrrupt level to 7 *** *)
      UNTIL false;
     END;

   (* Memory management procedures *)
   (* Scheduling procedures *)
   (* Kernel Operations procedures *)

   (*EXPORTED*) PROCEDURE SystemCall;

     BEGIN (* SystemCall *)
      (* Do this and that and call knelop *)
     END;  (* SystemCall *)

(*$I B:IPREFACE.PAS *)
(*$I B:IMMUPROC.PAS *)

   PROCEDURE InitSC;

      VAR
         Dummy: integer;

     BEGIN (* InitSC *)

      (**** The scheduler initialization gets control after
            mmproc has initiAlized .

            The following steps are carried out:

            (1) Initialize simple global variables.
            (2) Initialize initial objects.
            (3) Initialize stub object.
            (4) Initialize trap#8 = interrup_end. *)

      (**** Initialize simple variables *)
      InitHead(Timer,   Dummy);  (* Queues := empty *)
      InitHead(Running, Dummy);
      InitHead(Driving, Dummy);
      WITH RtCnt DO
        BEGIN
         msl := 0;
         lsl := 0
        END;

      (**** Initialize interrupt context and scheduler objects *)





     END;  (* InitSC *)




  BEGIN (* EosKernel *)
   InitPreface;
   InitMMU;
   InitSc;
   InitKnelOp;
   InitEnter;
  END.  (* EosKernel *)
«eof»