|
|
DataMuseum.dkPresents historical artifacts from the history of: DANOSI |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DANOSI Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 13902 (0x364e)
Types: TextFile
Names: »RTPSTD50.ENV«
└─⟦a2a1ee6f0⟧ Bits:30010509 PN:798-55-071 DVBS1.SW2114.rel.2.19-1
└─⟦this⟧ »RTPSTD50.ENV«
$listoff\r\r
stdenv; (* standard environment tog 870927 *)\r\r
(* transputer version tog 900706 *)\r\r
\r\r
(***** predefined constants *****)\r\r
const\r\r
maxint = 32767; -- #h7fffffff\r\r
minint = -32768; -- #h80000000\r\r
\r\r
\r\r
(***** predefined types *****)\r\r
type\r\r
\r\r
bit = 0..1;\r\r
\r\r
byte = 0..255;\r\r
\r\r
\r\r
conn_service = (cs_normal, cs_high);\r\r
\r\r
const create_ok=0;\r\r
create_no_memory=3;\r\r
\r\r
type create_result = create_ok .. create_no_memory;\r\r
\r\r
const\r\r
maxpriority = 0;\r\r
minpriority = 0;\r\r
stdpriority = minpriority;\r\r
\r\r
type\r\r
prio_type = minpriority..maxpriority;\r\r
\r\r
\r\r
event_type = (not_event, message_event, answer_event,\r\r
process_removed, port_closed, disconnected,\r\r
letter_sent, letter_arrived,\r\r
local_connect, remote_connect,\r\r
reset_indication, reset_completion,\r\r
credit, data_sent, data_arrived, data_overrun,\r\r
dummy_letter, dummy_lcnct, dummy_rcnct,\r\r
dummy_rindic, dummy_rcmpl, dummy_credit,\r\r
dummy_sent, dummy_arrived);\r\r
\r\r
const link_ok=0;\r\r
link_not_found=1;\r\r
link_no_parameter_match=3;\r\r
link_already_linked=6;\r\r
\r\r
type link_result=link_ok..link_already_linked;\r\r
\r\r
const unlink_ok=0;\r\r
unlink_no_program_linked=1;\r\r
unlink_program_busy=2;\r\r
\r\r
type unlink_result=unlink_ok..unlink_program_busy;\r\r
\r\r
const mem_private = 0;\r\r
\r\r
type mem_type = mem_private..mem_private;\r\r
\r\r
reason_type = (reason_ok, reason_name, reason_resource,\r\r
reason_closed, reason_network);\r\r
\r\r
scope_type = (anonymous, local, regional, global);\r\r
\r\r
string(length: byte) = array(1..length) of char;\r\r
\r\r
alfa = string(12);\r\r
\r\r
activation = (a_mailbox, a_delay);\r\r
\r\r
control_type = packed record \r\r
rcv_all,\r\r
get_credit: boolean;\r\r
end;\r\r
\r\r
\r\r
(* shielded type declarations *)\r\r
(******************************)\r\r
\r\r
mailbox_ = record\r\r
s: integer;\r\r
first: ^integer; -- ^proc or ^header\r\r
last: ^integer; -- ^proc or ^header\r\r
chain: ^integer; -- ^mbx\r\r
end;\r\r
\r\r
pool_ = record\r\r
s: integer;\r\r
first: ^integer; -- ^proc or ^header\r\r
last: ^integer; -- ^proc or ^header\r\r
chain: ^integer; -- ^pool_\r\r
size: integer;\r\r
head: ^integer; -- ^header\r\r
end;\r\r
\r\r
process_ = record\r\r
data: ^integer; -- ^proc\r\r
chain: ^integer; -- ^process\r\r
end;\r\r
\r\r
\r\r
reference_ = record\r\r
message: ^integer; -- ^header\r\r
locked: integer;\r\r
chain: ^integer; -- ^ref\r\r
end;\r\r
\r\r
\r\r
chain_ = record\r\r
message: ^integer; -- ^header\r\r
locked: integer;\r\r
start: ^integer; -- ^header\r\r
length: integer;\r\r
chain: ^integer; -- ^chain\r\r
end;\r\r
\r\r
port_ = record\r\r
chain: ^integer; -- ^port_\r\r
end;\r\r
\r\r
program_descriptor = record\r\r
state: integer;\r\r
paramtypes: ^integer; \r\r
poolparam: boolean;\r\r
lbdr: ^integer; -- ^lbdr\r\r
entry: ^integer; -- ^xxxx\r\r
namelength: integer;\r\r
name: array(1..12) of char;\r\r
count: integer;\r\r
chain: ^integer; -- ^prog\r\r
end;\r\r
\r\r
(***** predefined routines *****)\r\r
(*********************************)\r\r
\r\r
\r\r
\r\r
(* exception must be the first open routine *) \r\r
procedure exception(c: integer);\r\r
openroutine;\r\r
\r\r
\r\r
\r\r
\r\r
\r\r
function abs(n: integer): 0..maxint;\r\r
openroutine;\r\r
\r\r
\r\r
procedure alloc( var r: reference; var p: pool; var ra: mailbox);\r\r
external;\r\r
\r\r
function allocdelay(var r: reference; var p:pool; var ra: mailbox; \r\r
ms: integer): activation;\r\r
external;\r\r
\r\r
function allocmempool(var p: pool; no_of_bufs, bufsize: integer;\r\r
mem: mem_type): 0..maxint;\r\r
external;\r\r
\r\r
function allocpool(var p: pool; no_of_bufs, bufsize: integer): 0..maxint;\r\r
external;\r\r
\r\r
procedure break(var proc: process; fault: integer);\r\r
external;\r\r
\r\r
function bufcount(var r: reference): 0..maxint;\r\r
openroutine;\r\r
\r\r
\r\r
function bufsize(var r: rtype ): 0..maxint;\r\r
openroutine;\r\r
\r\r
\r\r
function bytecount(var r: rtype ): integer;\r\r
openroutine;\r\r
\r\r
\r\r
procedure chaindequeue(var ref: reference; var ch: chain);\r\r
external;\r\r
\r\r
procedure chaindown(var ch: chain);\r\r
external;\r\r
\r\r
procedure chainenqueue(var ref: reference; var ch: chain);\r\r
external;\r\r
\r\r
function chainlength(var ch: chain): 0..maxint;\r\r
openroutine;\r\r
\r\r
\r\r
procedure chainreset(var ch: chain);\r\r
external;\r\r
\r\r
procedure chainstart(var ch: chain);\r\r
external;\r\r
\r\r
procedure chainup(var ch: chain);\r\r
external;\r\r
\r\r
function ord(v: btype): integer; \r\r
openroutine;\r\r
\r\r
\r\r
function ord(v: wtype): integer; openroutine;\r\r
function chr(v: byte): char; \r\r
openroutine;\r\r
\r\r
\r\r
\r\r
function create(inspect incname: string; var prog: program_descriptor;\r\r
var pr: process; size: integer; prio: integer): create_result;\r\r
external;\r\r
\r\r
-- var pr: process; size: 0..maxint; prio: integer): create_result;\r\r
\r\r
function creditcount(var r: reference): 0..maxint;\r\r
openroutine;\r\r
\r\r
\r\r
(* use wp0 as temp *)\r\r
\r\r
procedure dec(var v: byte);\r\r
openroutine;\r\r
\r\r
\r\r
procedure dec(var v: integer);\r\r
openroutine;\r\r
\r\r
\r\r
procedure delay(ms: integer);\r\r
external;\r\r
\r\r
function eventkind(var r: rtype): event_type;\r\r
openroutine;\r\r
\r\r
\r\r
function hometest(var r: rtype; var p: pool): boolean;\r\r
openroutine;\r\r
\r\r
\r\r
(* use wp0 as temp *)\r\r
\r\r
procedure inc(var v: byte);\r\r
openroutine;\r\r
\r\r
\r\r
procedure inc(var v:integer);\r\r
openroutine;\r\r
\r\r
\r\r
function index(var r:reference): byte;\r\r
openroutine;\r\r
\r\r
\r\r
\r\r
function link(inspect incname: string;var prog: program_descriptor): \r\r
link_result;\r\r
external;\r\r
\r\r
function locked(var m:mailbox): boolean;\r\r
openroutine;\r\r
\r\r
\r\r
procedure new(var p: ptype); external;\r\r
\r\r
function nil(var p:ptype ): boolean; openroutine;\r\r
function nil(var p:reference): boolean; openroutine;\r\r
function nil(var p:process): boolean;\r\r
openroutine;\r\r
\r\r
\r\r
function offset(var r:rtype ): 0..maxint; \r\r
openroutine;\r\r
\r\r
\r\r
function open(var m:mailbox): boolean; openroutine;\r\r
function openpool(var p: pool): boolean;\r\r
openroutine;\r\r
\r\r
\r\r
function passive(var m:mailbox): boolean;\r\r
openroutine;\r\r
\r\r
\r\r
procedure pop(var b,s: reference);\r\r
external;\r\r
\r\r
function pred(v: btype): btype;\r\r
openroutine;\r\r
\r\r
\r\r
function pred(v: wtype): wtype;\r\r
openroutine;\r\r
\r\r
\r\r
procedure push(var b,s: reference);\r\r
external;\r\r
\r\r
function reason(var r:reference): reason_type;\r\r
openroutine;\r\r
\r\r
\r\r
procedure release(var r: reference);\r\r
external;\r\r
\r\r
function releasepool(var p:pool; bufs: integer): 0..maxint;\r\r
external;\r\r
\r\r
procedure remove(var pr: process);\r\r
external;\r\r
\r\r
procedure resetevent(var r: rtype);\r\r
openroutine;\r\r
\r\r
\r\r
procedure resume(var pr: process);\r\r
external;\r\r
\r\r
procedure return(var r:reference);\r\r
external;\r\r
\r\r
procedure setbytecount(var r: rtype ; v: integer);\r\r
openroutine;\r\r
\r\r
\r\r
procedure setoffset(var r: rtype ; v: integer);\r\r
openroutine;\r\r
\r\r
\r\r
procedure settop(var r: rtype ; v: integer);\r\r
openroutine;\r\r
\r\r
\r\r
\r\r
procedure setu1(var r: rtype ; v: byte);\r\r
openroutine;\r\r
\r\r
\r\r
procedure setu2(var r: rtype ; v: byte);\r\r
openroutine;\r\r
\r\r
\r\r
procedure setu3(var r: rtype ; v: byte);\r\r
openroutine;\r\r
\r\r
\r\r
procedure setu4(var r: rtype ; v: byte);\r\r
openroutine;\r\r
\r\r
\r\r
procedure signal(var r: reference; var m:mailbox);\r\r
external;\r\r
\r\r
function stackdepth(var r:reference ): 0..maxint;\r\r
openroutine;\r\r
\r\r
\r\r
procedure start(var pr: process; prio: integer);\r\r
external;\r\r
\r\r
procedure stop(var p: process);\r\r
external;\r\r
\r\r
function succ(v:btype): btype;\r\r
openroutine;\r\r
\r\r
\r\r
function succ(v:wtype): wtype;\r\r
openroutine;\r\r
\r\r
\r\r
procedure tofrom(var toref: reference; toindex: integer;\r\r
var fromref: reference; fromindex: integer;\r\r
bytes: integer );\r\r
external;\r\r
\r\r
function top(var r:rtype ): 0..maxint;\r\r
openroutine;\r\r
\r\r
\r\r
procedure trace(f: integer);\r\r
external;\r\r
\r\r
procedure stacktrace(f: integer);\r\r
external;\r\r
\r\r
function unlink(var prog: program_descriptor): unlink_result; external;\r\r
\r\r
function u1(var r:rtype ): byte;\r\r
openroutine;\r\r
\r\r
\r\r
function u2(var r:rtype ): byte;\r\r
openroutine;\r\r
\r\r
\r\r
function u3(var r:rtype ): byte;\r\r
openroutine;\r\r
\r\r
\r\r
function u4(var r:rtype ): byte;\r\r
openroutine;\r\r
\r\r
\r\r
procedure wait( var r: reference; var m: mailbox);\r\r
external;\r\r
\r\r
function waitdelay(var r: reference; var m: mailbox;\r\r
ms: integer): activation;\r\r
external;\r\r
\r\r
function alias(var p:port; inspect name: string ): boolean;\r\r
openroutine;\r\r
\r\r
\r\r
procedure closeport(var p: port);\r\r
external;\r\r
\r\r
procedure connect(var p:port; index:1..maxint; var compl, disc: reference;\r\r
inspect remote_name:string; service: conn_service);\r\r
external;\r\r
\r\r
procedure disconnect(var p:port; index:1..maxint);\r\r
external;\r\r
\r\r
procedure getconnection(var p:port; index:1..maxint; var compl, disc:reference);\r\r
external;\r\r
\r\r
procedure getcredit(var p:port; index:1..maxint; var credbuf: reference);\r\r
external;\r\r
\r\r
procedure getreset(var p:port; index:1..maxint; var indic: reference);\r\r
external;\r\r
\r\r
function maxconnections:0..maxint;\r\r
external;\r\r
\r\r
procedure openport(var p:port; var closebuf: reference;\r\r
inspect name:string; scope: scope_type;\r\r
no_of_cons: integer; cntrl: control_type);\r\r
external;\r\r
\r\r
procedure receive(var p:port; index:1..maxint; var databuf: reference);\r\r
external;\r\r
\r\r
procedure receiveall(var p:port; var databuf: reference);\r\r
external;\r\r
\r\r
procedure reset(var p:port; index:1..maxint; var compl: reference);\r\r
external;\r\r
\r\r
procedure send(var p:port; index:1..maxint; var databuf: reference);\r\r
external;\r\r
\r\r
\r\r
(* implementation dependent standard routines and types*)\r\r
\r\r
type \r\r
\r\r
coded_date=record\r\r
year_after_1900: byte;\r\r
month: byte;\r\r
day: byte;\r\r
end;\r\r
\r\r
coded_time=record\r\r
hour: byte;\r\r
minute: byte;\r\r
end;\r\r
\r\r
coded_secs=packed record\r\r
sec: byte;\r\r
msec: int16;\r\r
end;\r\r
\r\r
coded_inc= record\r\r
days: 0..31;\r\r
hours: 0..23;\r\r
mins: 0..59;\r\r
secs: 0..59;\r\r
msecs: int16;\r\r
end;\r\r
\r\r
delaytype= record\r\r
prev_date: coded_date;\r\r
prev_time: coded_time;\r\r
prev_secs: coded_secs;\r\r
inc : coded_inc;\r\r
end;\r\r
\r\r
clocktype= record\r\r
date: coded_date;\r\r
time: coded_time;\r\r
secs: coded_secs;\r\r
end;\r\r
\r\r
tversion= record\r\r
release, subrelease: byte;\r\r
end;\r\r
\r\r
tmoduleversion= record\r\r
moduledate: coded_date;\r\r
moduletime: coded_time;\r\r
moduleversion: tversion;\r\r
compilationdate: coded_date;\r\r
compilationtime: coded_time;\r\r
end;\r\r
\r\r
function clock_difference( var t1, t2: clocktype ): coded_inc;\r\r
external;\r\r
\r\r
function clock_increment( var t: clocktype; var inc: coded_inc ): clocktype;\r\r
external;\r\r
\r\r
function clock_less_than( var t1, t2: clocktype ): boolean;\r\r
external;\r\r
\r\r
function deletemailbox(inspect mbx_name: string): integer;\r\r
external;\r\r
\r\r
function getclock: clocktype;\r\r
external;\r\r
\r\r
function namemailbox(var m: mailbox; inspect mbx_name: string): integer;\r\r
external;\r\r
\r\r
function ownname(var name:string): byte;\r\r
external;\r\r
\r\r
function ownprogramname(var name:string): byte;\r\r
external;\r\r
\r\r
procedure ownversion(var myversion: tmoduleversion);\r\r
external;\r\r
\r\r
function searchmailbox(inspect mbx_name: string): ^mailbox;\r\r
external;\r\r
\r\r
\r\r
procedure sendtimer(var ref: reference );\r\r
external;\r\r
\r\r
procedure setownname(inspect name: string );\r\r
external;\r\r
\r\r
function swap(n: int16): integer;\r\r
openroutine;\r\r
\r\r
\r\r
(*\r\r
function swap(n: integer): integer;\r\r
0\r\r
stl -3\r\r
ldl -3\r\r
ldc 24\r\r
shl\r\r
ldlp -3\r\r
adc 1\r\r
lb\r\r
ldc 16\r\r
shl \r\r
or\r\r
ldlp -3\r\r
adc 2\r\r
lb\r\r
ldc 8\r\r
shl\r\r
or\r\r
ldlp -3\r\r
adc 3\r\r
lb\r\r
or\r\r
end;\r\r
*)\r\r
(* implementation demendent open routines *) \r\r
\r\r
procedure breakpoint;\r\r
openroutine;\r\r
\r\r
\r\r
procedure crc16( value, quotient: integer );\r\r
external;\r\r
\r\r
procedure crc16buf( var ref: reference; fromindex, toindex, quotient, startvalue: integer);\r\r
external; \r\r
\r\r
procedure definetimer( on: boolean );\r\r
openroutine;\r\r
\r\r
\r\r
function equalhome(var a: rtype ; var b: rtype ): boolean;\r\r
openroutine;\r\r
\r\r
\r\r
function homeless(var r: rtype ): boolean; external;\r\r
\r\r
function imcpresent: boolean;\r\r
openroutine;\r\r
\r\r
\r\r
function locktest(var ref: reference): boolean;\r\r
openroutine;\r\r
\r\r
\r\r
procedure getservers( var ref: reference );\r\r
external;\r\r
\r\r
function madd( a, b: integer): integer;\r\r
openroutine;\r\r
\r\r
\r\r
function mmul( a, b: integer): integer;\r\r
openroutine;\r\r
\r\r
\r\r
function msub( a, b: integer): integer;\r\r
openroutine;\r\r
\r\r
\r\r
function rotate( a, shl: integer): integer;\r\r
openroutine;\r\r
\r\r
\r\r
procedure setpriority( prio: integer);\r\r
openroutine;\r\r
\r\r
\r\r
function uadd( a, b: integer): integer;\r\r
openroutine;\r\r
\r\r
\r\r
function udiv( a, b: integer): integer;\r\r
openroutine;\r\r
\r\r
\r\r
function ult( a, b: integer): boolean;\r\r
openroutine;\r\r
\r\r
\r\r
function umod( a, b: integer): integer;\r\r
openroutine;\r\r
\r\r
\r\r
function umul( a, b: integer): integer;\r\r
openroutine;\r\r
\r\r
\r\r
function usub( a, b: integer): integer;\r\r
openroutine;\r\r
\r\r
\r\r
\r\r
.\r\r