|
|
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: 9344 (0x2480)
Types: TextFile
Names: »KNEL.ID«
└─⟦909f4eb2b⟧ Bits:30009789/_.ft.Ibm2.50006622.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »KNEL.ID«
└─⟦ddcd65152⟧ Bits:30009789/_.ft.Ibm2.50006617.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »KNEL.ID«
æ*****************************************************************
Copyright 1984 by
NCR Corporation
Dayton, Ohio U.S.A.
All Rights Reserved
******************************************************************
EOS Software produced by:
NCR Systems Engineering - Copenhagen
Copenhagen
DENMARK
*****************************************************************å
æ Eos Pascal Kernel Family Prefix. Ver. 2.00 - 83-11-11.
======================================================
å
æ OBJECT knelfam; it would be nice to have a separate name scope å
æ************** Create & Delete *********************å
function DeclGen
(
var obj: ownSet; var manager: manSet; var envelope: refEnv;
locals: integer; termProc: integer;
dealloc, maxStack: sizeType;
temps: integer; tempData: integer; controlProc: integer;
implementation: address; callStack: sizeType;
callAllowed: boolean
): resultType;
æexternalå forward;
function SetCallStack
(
var envelope: refEnv; callStack: sizeType
): resultType;
æexternalå forward;
function DeclSeg
(
var obj: ownSet; noOfBytes: integer
): resultType;
æexternalå forward;
æ DeclSub
(
var obj: ownSet; <subsegment argument>
): resultType;
å
function NewSeg
(
var obj: ownSet; noOfBytes: integer
): resultType;
æexternalå forward;
æ NewSub
(
var obj: ownSet; <subsegment argument>
): resultType;
å
æ Dealloc
(
var owner: ownSet; var obj: refObj;
<reference actuals> <value actuals>
): resultType;
å
function DelEnv
(
var obj: ownSet; var manager: manSet
): resultType;
æexternalå forward;
function MakeReentrant
(
var envelope: refEnv
): resultType;
æexternalå forward;
æ************** Pointer Manipulation ****************å
function Copy
(
var source, destination: simpleRef
): resultType;
æexternalå forward;
function MoveOwn
(
var obj: refObj; var newset: ownSet
): resultType;
æexternalå forward;
function MoveMan
(
var envelope: refEnv; var newset: manSet
): resultType;
æexternalå forward;
function NextInSet
(
var refSet: ref; var current: simpleRef
): resultType;
æexternalå forward;
function FirstInSet
(
var refSet: ref; var first: simpleRef
): resultType;
æexternalå forward;
function refEqual
(
var ref1, ref2: ref
): resultType;
æexternalå forward;
function sameEntity æ*** may generate an exception ***å
(
var ref1, ref2: ref
): boolean;
var res : resultType;
begin
res:=refEqual(ref1,ref2);
if res.main = ok then sameEntity:= true else
if res.main = æstatuså pointerValueIllegal then sameEntity:= false else
exception(res);
end ;
æ************** Process Management ******************å
æ DeclProc
(
var process: ownSet; entry: long;
<reference actuals> <value actuals>
): resultType;
å
æ************** Abort & Speed-Up ********************å
type
propMode = long;
const
propNone = 0; propReject = 1; propAll = 2;
type
speedUpStatus = long;
const
noSpeedUp = 0; rejectSpeedUp = 1; dummyfySpeedUp = 2;
function Abort
(
var envelope: refEnv
): resultType;
æexternalå forward;
function SpeedUp
(
var envelope: refEnv
): resultType;
æexternalå forward;
function Propagate
(
mode : propMode
): resultType;
æexternalå forward;
function TestSpeedUp
(
var status: speedUpStatus
): resultType;
æexternalå forward;
æ************** Identification **********************å
function DeclEnv
(
var obj: ownSet; var manager: manSet; var envelope: refEnv;
locals: integer; termProc: integer;
dealloc, maxStack: sizeType
): resultType;
æexternalå forward;
function InspObj
(
var obj: refObj; var manager: refEnv; var envelope: refEnv;
var index: integer
): resultType;
æexternalå forward;
function InspAct
(
var formal: ref; var manager: refEnv; var envelope: refEnv;
var index: integer; var count: integer
): resultType;
æexternalå forward;
function InspCaller
(
count: integer; var manager: refEnv; var envelope: refEnv;
var index: integer
): resultType;
æexternalå forward;
function InspProc
(
var manager: refEnv; var envelope: refEnv; var index: integer
): resultType;
æexternalå forward;
æ SetCap
(
var obj: refObj; <reference actuals> <value actuals>
): resultType;
å
æ************** Execution Control *******************å
function SetSlice
(
slice: integer
): resultType;
æexternalå forward;
function SetWorkSet
(
noOfBytes: integer
): resultType;
æexternalå forward;
type uSecType=record
highOrder : integer;
lowOrder : integer;
end ;
function GetTime
(
var elapsed, used: uSecType
): resultType;
æexternalå forward;
æ************** Size Arithmetic *********************å
function OkResult: resultType;
var r: resultType;
begin
with r do begin
orgNo := 0;
family := 0;
main := 0;
orgSys := 0;
auxCause := 0;
argNo := 0;
end;
OkResult := r;
end;
function ClearSize(VAR s: sizeType): resultType;
begin
s.kernel:= 0; s.user:=0;
ClearSize := OkResult;
end;
function AddEnv (VAR s: sizeType; r: integer): resultType;
begin
s.kernel:=s.kernel+72+14*r;
AddEnv := OkResult;
end;
function AddGen (VAR s : sizeType; r : integer): resultType;
begin
s.kernel := s.kernel + 30;
AddGen := AddEnv (s, r);
end;
function AddSeg (VAR s: sizeType; b: integer): resultType;
begin
s.kernel:=s.kernel+50; s.user:=s.user+(b+255)DIV 256 * 256;
AddSeg := OkResult;
end;
function AddEmbSeg (VAR s : sizeType; b : integer): resultType;
begin
s.kernel := s.kernel + 50;
s.user := s.user + (b + 255) DIV 256 * 256;
AddEmbSeg := OkResult;
end;
function AddSub (VAR s: sizeType ): resultType;
begin
s.kernel := s.kernel + 32;
AddSub := OkResult;
end;
function AddEmbSub (VAR s: sizeType ): resultType;
begin
s.kernel := s.kernel +64;
AddEmbSub := OkResult;
end;
function AddCall ( var s: sizeType; var obj: ref;
ptrFormals, subFormals, valParams, valBytes: integer ): resultType;
begin end;
function AddDealloc ( var s: sizeType; var obj: ref;
ptrFormals, subFormals, valParams, valBytes: integer ): resultType;
begin end;
function AddCtx ( var s: sizeType; ptrFormals, subFormals,
valParams, valBytes, temps, tempData: integer ): resultType;
begin end;
function AddProc ( var s: sizeType; var envelope: ref;
ptrFormals, subFormals, valParams, valBytes: integer ): resultType;
begin end;
function AddSize ( var s: sizeType; s1: sizeType ): resultType;
begin
s.kernel := s.kernel + s1.kernel;
s.user := s.user + s1.user;
AddSize := OkResult;
end;
function MaxSize ( var s: sizeType; s1, s2: sizeType ): resultType;
begin
if s1.kernel > s2.kernel then s.kernel := s1.kernel
else s.kernel := s2.kernel;
if s1.user > s2.user then s.user := s1.user
else s.user := s2.user;
MaxSize := OkResult;
end;
function NoOfBytes ( s: sizeType; var bytes: integer ): resultType;
begin
bytes := s.kernel + s.user;
NoOfBytes := OkResult;
end;
FUNCTION makeSize
(user,kernel: integer)
: sizeType;
VAR s: sizeType;
BEGIN
s.user:=user; s.kernel:=kernel;
makeSize:=s;
END æ***makeSize***å;
æ************** Io Calls ****************************å
type
useType = integer;
const
useExecute = 4; useRead = 1; useWrite = 2;
function IoBegin
(
var resptr: ref; univ var absaddr: long;
var length: integer; var use: useType
): resultType;
æexternalå forward;
function IoEnd
(
var resptr: ref; univ var absaddr: long;
var length: integer; var use: useType
): resultType;
æexternalå forward;
function IoAddr
(
var resptr: ref; univ var absaddr: long;
var length: integer; var use: useType
): resultType;
æexternalå forward;
æ end; knelfam å
æ End EOS Kernel Family Preface å
«eof»