|
|
DataMuseum.dkPresents historical artifacts from the history of: RC3500 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC3500 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 5376 (0x1500)
Types: TextFileVerbose
Names: »bblenvgen«
└─⟦2c55ea56f⟧ Bits:30001844 SW-save af projekt 1000, Alarm-system
└─⟦6b41451d2⟧
└─⟦this⟧ »bblenvgen«
bblenv = set 1 mini
if ok.no
finis
p1 = set 1
p2 = set 1
p2 = edit platonenv
l./system_vector =/, r/!/xxxxxxxxxx/, f
p1 = edit p2
l t,
g b/? <*//,
l t,
g b/*>//,
l t,
g b/!//,
f
p1=edit p1
l./system_vector =/, r/xxxxxxxxxx/!/, f
if ok.no
finis
bblenv = edit p1
l./message_header = record/, l./end;/, l1,
s1,
d./message_header = record/, i/
ext_message_header = record
/,
g8/^ message_header/addr/,
l-8,
g8/^ semaphore/addr/,
l./incarnation_descriptor = record/, l./end;/, l1,
s1, d./incarnation_descriptor = record/, i/
ext_incarnation_descriptor = record
/,
l./processref/,
r/^ process_descriptor/addr/,
l./semchain/,
r/^ semaphore/addr/,
l1,
r/^ reference/addr/,
l1,
r/^ shadow/addr/,
l1,
r/^ message_header/addr/,
l./exit_semaphore/,
r/semaphore;/addr;
delaychain : addr;/,
l./exitref/,
r/reference;/addr;
statistic : addr;/,
l./secret_pointer/, r/^ secret_vector/addr/,
l./(* end of standard environment *)/,
i/
(* now follows type definitions used in runtime processes and routines *)
const
fpabuffersize = 768; (* defines size of fpainputbuffer in boot *)
ptrbuffersize = 32; (* defines size of ptr inputbuffer in boot *)
break_appetite = 14;
create_appetite = 28;
initpool_appetite = 21;
link_appetite = 13;
remove_appetite = 16;
reservech_appetite= 13;
start_appetite = 11;
stop_appetite = 10;
unlink_appetite = 14;
type
switch_type = packed record
kind : 0..15;
module: 0..15;
address : byte
end;
regbase = integer;
mem_map_type = packed array (0..15) of bit;
descriptor_segment = record
descriptor_length : integer;
no_of_pages : integer;
pagesize : integer;
last_page_length : integer;
kind : integer;
name : alfa;
entry_point : addr;
exception_point : addr;
exit_point : addr;
default_appetite : integer;
last_param_offset : integer;
no_of_params : integer
end;
range_descriptor = record
lower_limit : integer;
upper_limit : integer
end;
dope_vector = record
r : range_descriptor;
elem_size : integer
end;
pat32 = set of 0..31;
pat16 = set of 0..15;
corearray = array(1..fpabuffersize) of byte;
(* now the routines used by the runtime processes are declared as externals *)
function addrptr(p : ^niltype) : addr;
external;
function addr_of(var a : addr) : addr;
external;
function addr_of_core(var a : corearray) : addr;
external;
function addr_of_proc(var pr : process_descriptor) : addr;
external;
procedure asgnaddrpref(var a : addr; p : ^ process_descriptor);
external;
procedure asgnaddrref(var a : addr; var r : reference);
external;
procedure asgnaddrsec(var a : addr; p : ^ secret_vector);
external;
procedure asgnrefaddr(var r : reference; a : addr);
external;
procedure asgnsemp(var p : ^ semaphore; q : ^ semaphore);
external;
procedure asgnsempaddr(var p : ^ semaphore; var address : addr);
external;
procedure assign2(var map : mem_map_type; mask : integer); external;
procedure balloc;
external;
procedure bcheck;
external;
procedure bownertest;
external;
procedure excptcall(excode : integer);
external;
procedure checkstack(appetite : integer);
external;
procedure clearlevel;
external;
procedure copywords(destination , source : addr; count : integer);
external;
procedure counttime(level : integer); external;
procedure defineptr(var pointer : addr;
start : addr;
index : integer;
var dope : dope_vector); external;
function equalref(var a , b : reference) : boolean;
external;
procedure getbyte(var result: byte; pointer : addr); external;
procedure getinteger(var result : integer; pointer : addr); external;
procedure getlfgf(var lf , gf : addr);
external;
procedure initextref(var r : reference ; var msg_header : ext_message_header);
external;
procedure initref(var r : reference; var msg_header : message_header);
external;
procedure initscrtref(var secretref : ^ secret_vector; address : addr);
external;
procedure jumpto(address : addr); external;
procedure linkmessage(var r : reference);
external;
procedure nextrefp(var p : ^ reference);
external;
function ptraddr(a : addr) : ^niltype;
external;
procedure putaddr(pointer , walue : addr); external;
procedure readram(var result : byte; index : integer);
external;
function refpool(var p : pool 1) : ^ pool 1;
external;
function refshadow(var sh : shadow) : ^shadow;
external;
procedure selectlevel(level : integer);
external;
procedure setregister(walue,index : integer); external;
procedure startdriver(var p : ext_incarnation_descriptor);
external;
function uadd (i,j: integer): integer; external;
function udiv (i,j: integer): integer; external;
function ult (i,j: integer): boolean; external;
function umod (i,j: integer): integer; external;
function umul (i,j: integer): integer; external;
function usub (i,j: integer): integer; external;
procedure writeram(index , walue : integer);
external;
procedure writeramclr(index, walue : integer);
external;
procedure exchange(var r: reference; var p: ^message_header); external;
/,
f
if ok.no
finis
«eof»