|
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: 9216 (0x2400) Types: TextFileVerbose Names: »platonenv«
└─⟦2c55ea56f⟧ Bits:30001844 SW-save af projekt 1000, Alarm-system └─⟦6b41451d2⟧ └─⟦this⟧ »platonenv«
standard_environment; (* version : 2 *) (* revision 5 *) (* date : 81.06.15 , bbl *) const alfalength = 12; maxint = 32767; minint = -32768; mpexcfirst = 1; rsexcfirst = mpexcfirst + 30; cpexcfirst = rsexcfirst + 5; maxpriority = 3; minpriority = -3; stdpriority = minpriority; type (* basic types *) bit = 0..1; byte = 0..255; memno_type = 0..31; activation = (a_interrupt, a_semaphore, a_delay); base_type = packed record lockbit : bit; nill : bit; moduletype : byte; mem_no : memno_type; nullbit : bit end; addr = record base : base_type; disp : integer end; boolean = (false,true); char =( (* 0 1 2 3 4 5 6 7 8 9 *) (* 0 *) nul, soh, stx, etx, eot, enq, ack, bel, bs, ht, (* 10 *) nl, vt, ff, cr, so, si, dle, dc1, dc2, dc3, (* 20 *) dc4, nak, syn, etb, can, em, sub, esc, fs, gs, (* 30 *) rs, us, sp, ?, ?, ?, ?, ?, ?, ?, (* 40 *) ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, (* 50 *) ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, (* 60 *) ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, (* 70 *) ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, (* 80 *) ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, (* 90 *) ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, (* 100 *) ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, (* 110 *) ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, (* 120 *) ?, ?, ?, ?, ?, ?, ?, del ); alfa = array ( 1..alfalength ) of char; semaphore = record ? <* chain *> : addr; (* message_headers or incarnation_descriptors *) ? <* semchain *> : ^ semaphore (* used by exit *) end; message_header = record ? <* chain *> : ^ message_header; messagekind : ! integer; size : ! integer; ? <* start *> : addr; (* start of message data part *) ? <* owner *> : ^ semaphore; ? <* answer *> : ^ semaphore; ? <* msg_chain *> : ^ message_header; ? <* stackchain *> : ^ message_header; u1, u2, u3, u4 : byte end; reference = ^ message_header; (* nb nb nb nb : all variables of type reference are allocated *) (* memory space as two pointer variables *) shadow = record ? <* r *> : reference; ? <* next *> : ^ shadow (* used by exit *) end; process_inf = record entry_point : addr; exception_point : addr; exit_point : addr; default_appetite : integer; last_param_offset : integer end; process_descriptor = record (* the "type" of a process name *) incarnationcount : integer; param_descr_ref : addr; (* address of formal parameters *) link_state : integer; (* 0: unlinked 1: internal linked 2: external linked *) process_inf_ref : addr; (* pointer to descriptorsegment if external linked pointer to process_inf if internal linked *) name : alfa end; processrec = record (* used by create *) processref : ^ process_descriptor; firstparam : addr; size_of_params : integer end; semtype = (deallocatorsem,linkersem,stopsem,allocsem,exceptionsem,opsem,?,?, ?,?,?,?, monitorsem,?,timersem,iotimersem,?,?,activebase,monitorstack, timerstack,allocatorstack,linkerstack,adamstack); adamsemtype = (allocatorsem,adamsem,operatorsem,?,?,?,?,?, ?,?,?,?,?,?,?,?); secret_vector = array(semtype) of ^ semaphore; adamvector = array(adamsemtype) of ^ semaphore; system_vector = ! adamvector; incarnation_descriptor = record (* the incarnation descriptor appearing as the first part of global frame *) ? <* chain *> : addr; ? <* pu *> : byte; ? <* level *> : byte; ? <* incstate *> : integer; ? <* msg_waited *> : addr; ? <* activequeue *> : addr; ? <* chainhead *> : addr; ? <* exception_mask *> : integer; ? <* exception_point *> : addr; ? <* exic *> : addr; ? <* dumplm *> : integer; ? <* dumpps *> : integer; ? <* dumplu *> : integer; ? <* dumpsf *> : integer; ? <* entry_point *> : addr; timer : integer; ? <* maxstack *> : integer; ? <* processref *> : ^ process_descriptor; ? <* semchain *> : ^ semaphore; ? <* refchain *> : ^ reference; ? <* shadowchain *> : ^ shadow; ? <* msg_chain *> : ^ message_header; ? <* exit_point *> : addr; ? <* exit_semaphore *> : semaphore; ? <* exitref *> : reference; ? <* secret_pointer *> : ^ secret_vector; ? <* plinetable *> : addr; incname : alfa; end; coded_date = packed record year_after_1900 : 0 .. 127; month : 0 .. 15; day : 0 .. 31; end; coded_time = packed record compiler_version : 0..31; (* 5 bits *) hour : 0..31; (* 5 bits *) minute : 0..63; (* 6 bits *) end; coded_secs = packed record sec : 0..63; msec: 0..1023; end; delaytype = record prev_date : coded_date; prev_time : coded_time; prev_secs : coded_secs; inc : packed record days : 0..63; hours : 0..31; mins : 0..63; secs : 0..63; msecs : 0..1023; end; end; var (* now a variable of type incarnation_descriptor must!! be declared as the first variable *) own : incarnation_descriptor; (* now the standard routines are defined as externals *) function abs(x : niltype) : niltype; external; procedure alloc(var r : reference; var p : pool 100 ; var sem : semaphore); external; procedure break(var sh : shadow; excode : integer); external; function chr(int : 0..127) : char; external; function create(incarnation_name : alfa; proces : processrec; var sh : shadow; storage : integer) : integer; external; procedure definetimer(onoff:boolean); external; function empty(var r : reference) : boolean; external; function eoi : boolean; external; procedure exception(excode : integer); external; procedure inbyteblock (var next : integer; first,last : integer; var msg : reference; var ch_msg : reference); external; procedure inwordblock (var next : integer; first,last : integer; var msg : reference; var ch_msg : reference); external; function link(external_name : alfa; var proces : process_descriptor) : integer; external; function locked(var sem : semaphore) : boolean; external; function nil(var r : ^ niltype) : boolean; external; function open(var sem : semaphore) : boolean; external; function openpool(var p : pool 1) : boolean; external; function ord(x : niltype) : integer; external; procedure outbyteblock (var next : integer; first,last : integer; var msg : reference; var ch_msg : reference); external; procedure outwordblock (var next : integer; first,last : integer; var msg : reference; var ch_msg : reference); external; function ownertest(var p : pool 1; var r : reference) : boolean; external; function passive(var sem : semaphore) : boolean; external; procedure pop(var r1, r2 : reference); external; function pred(x : niltype) : niltype; external; procedure push(var r1, r2 : reference); external; function ref(var sem : semaphore) : ^ semaphore; external; procedure release(var r : reference); external; procedure remove(var sh : shadow); external; function reservech(var ch_msg : reference; level, mask : integer): integer; external; procedure return(var r : reference); external; procedure sendtimer(var r : reference); external; procedure sensesem(var r : reference; var sem : semaphore); external; procedure setpriority(priority : integer); external; procedure signal(var r : reference; var sem : semaphore); external; procedure start(var sh : shadow; priority : integer); external; procedure stop(var sh : shadow); external; function succ(x : niltype) : niltype; external; procedure trace = exception( code : integer ) ; external; function unlink(var proces : process_descriptor) : integer; external; procedure wait(var r : reference; var sem : semaphore); external; procedure waiti; external; procedure waits = wait(var r : reference; var sem : semaphore); external; procedure waitd(delay : integer); external; procedure waitt; external; function waitid(delay : integer) : activation; external; function waitit: activation; external; function waitis( var r: reference; var s : semaphore) : activation; external; function waitsd ( var r : reference; var s : semaphore; delay : integer ) : activation; external; function waitst (var r: reference; var s: semaphore): activation; external; function waitisd( var r : reference; var s : semaphore; delay : integer ) : activation; external; function waitist (var r: reference; var s: semaphore): activation; external; function ctrwaitid ( c : integer; delay : integer ) : activation; external; function ctrwaitit (c: integer): activation; external; function ctrwaitis ( c: integer; var r:reference; var s : semaphore) : activation ; external; function ctrwaitisd ( c: integer; var r : reference; var s : semaphore; delay : integer) : activation; external; function ctrwaitist (c: integer; var r: reference; var s: semaphore): activation; external; procedure ___exit___rc; external; procedure _initpool_rc(var s : semaphore; number , size : integer); external; . (* end of standard environment *) «eof»