|
|
DataMuseum.dkPresents historical artifacts from the history of: Bogika Butler |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Bogika Butler Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 4480 (0x1180)
Types: TextFile
Names: »KERNEL.PAS«
└─⟦08e5746f0⟧ Bits:30009789/_.ft.Ibm2.50007359.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »KERNEL.PAS«
(*
***********************************************************************
* 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»