DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

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

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦74c40ef42⟧ TextFile

    Length: 5376 (0x1500)
    Types: TextFile
    Names: »z80envir«

Derivation

└─⟦2c55ea56f⟧ Bits:30001844 SW-save af projekt 1000, Alarm-system
    └─⟦6b41451d2⟧ 
        └─⟦this⟧ »z80envir« 

TextFile

standard_z80_environment;
(* date : 81.01.05  , ep *)

(*$3 4 0*)  (* call pass4z80 after platonpass3 *)
 
const

alfalength = 12;
maxint = 32767;
minint = -32768;


type

(* basic types *)
bit = 0..1;
byte = 0..255;
 
addr = integer;
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
? <* semstate *> : byte;
? <* chain *> : addr; (* message_headers or incarnation_descriptors *)
end;

sempointer = ^ semaphore;

message_kind = (datamsg, channelmsg);

message = record
? <* chain *> : ^ message;
? <* owner *> : sempointer;
? <* answer *> : sempointer;
? <* stackchain *> : ^ message;
? <* datastart *> : addr;
size : ! integer;
kind : ! message_kind;
u1, u2, u3, u4 : byte
end;

reference = ^ message;

shadow = addr;

activation = ( a_interrupt, a_semaphore, a_delay );

link_status_type = (not_bound, internal, external_bound);
 
process_descriptor = record (* the "type" of a process name *)
? <* link_statue *> : link_status_type;
? <* prog_descr  *> : addr;    (* addr of program descriptor *)
? <* param_descr *> : addr;    (* addr of formal parameters  *)
? <* name        *> : alfa;
end;

processrec = record  (* used by create *)
? <* size_of_param  *> : integer;
? <* firstparam     *> : addr;
? <* processref     *> : ^ process_descriptor;
end;

(* 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(proces : processrec; var sh : shadow;
storage : integer) : integer; external;

function empty(var r : reference) : boolean; external;

procedure exception(excode : integer);
external;

procedure trace(c : integer); external;

procedure link(external_name : alfa;
var proces : process_descriptor); 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;

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) : sempointer; external;

procedure release(var r : reference); external;

procedure remove(var sh : shadow); external;

procedure reservech(var ch_msg : reference; ch : integer); external;

procedure return(var r : reference); external;

procedure sensesem(var r : reference; var sem : semaphore);
external;

procedure signal(var r : reference; var sem : semaphore); external;

procedure start(var sh : shadow; priority : 1..254); external;

procedure stop(var sh : shadow); external;

function succ(x : niltype) : niltype; external;

procedure unlink(var proces : process_descriptor); external;

procedure wait(var r : reference; var sem : semaphore); external;

procedure waiti; external;

procedure waits(var r: reference; var s: semaphore); external;

procedure waitd(delay: byte); external;

function waitis(var r: reference; var s: semaphore): activation;
external;

function waitid(delay: byte): activation; external;

function waitsd(var r: reference; var s: semaphore; delay: byte): activation;
external;

function waitisd(var r: reference; var s: semaphore; delay: byte):
activation; external;

function inbyte(inport: byte): byte; external;

procedure inbyteblock(var r: reference; first, last: integer; inport: byte);
external;

procedure outbyte(outport, date: byte); external;

procedure outbyteblock(var r: reference; first, last: integer; outport: byte);
external;

procedure zenable; external;

procedure zreti; external;

function remdelay: byte; external;

procedure interrupt(c: integer); external;

.  (* end of z80 standard enviroment *)

▶EOF◀