|
|
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: 20736 (0x5100)
Types: TextFileVerbose
Names: »coderoutine«
└─⟦2c55ea56f⟧ Bits:30001844 SW-save af projekt 1000, Alarm-system
└─⟦6b41451d2⟧
└─⟦this⟧ »coderoutine«
prefix abs;
function abs(x : niltype) : niltype;
beginbody 0:
abs ;
endbody;
.
prefix addrptr;
function addrptr(p : ^niltype) : addr;
beginbody 0:
stvsd 0
endbody;
.
prefix addr_of;
function addr_of(var a: addr): addr;
beginbody 0:
stvsd 0
endbody;
.
prefix addr_of_core;
function addr_of_core(var a : corearray) : addr;
beginbody 0:
stvsd 0
endbody;
.
prefix addr_of_proc;
function addr_of_proc(var pr : process_descriptor) : addr;
beginbody 0:
stvsd 0
endbody;
.
prefix asgnaddrinc;
procedure asgnaddrinc(var a: addr; var p: ext_incarnation_descriptor);
beginbody 0:
stvsd 0
endbody;
.
prefix asgnaddrpref;
procedure asgnaddrpref(var a : addr; p : ^ process_descriptor);
beginbody 0:
stvsd 0
endbody;
.
prefix asgnaddrref;
procedure asgnaddrref(var a:addr; var r: reference);
beginbody 0:
revsd 0
stvsd 0
endbody;
.
prefix asgnaddrsec;
procedure asgnaddrsec(var a:addr; p: ^ secret_vector);
beginbody 0:
stvsd 0
endbody;
.
prefix asgnbyteint;
procedure asgnbyteint(var b : record left,right : byte end;
word : integer);
beginbody 0:
stvsw 0
endbody;
.
prefix asgnintset;
procedure asgnintset(var dest: integer; source: pat16);
beginbody 0:
stvsw 0
endbody;
.
prefix asgnpntradr;
function asgnpntradr( a : addr ) : ^ integer;
beginbody 0:
endbody;
.
prefix asgnptraddr;
function asgnptraddr ( a : addr ) : ^ integer (* or something else *);
beginbody 0:
endbody;
.
prefix asgnptradr;
function asgnptradr ( a : addr ) : ^ integer (* or something else *);
beginbody 0:
endbody;
.
prefix asgnrefaddr;
procedure asgnrefaddr(var ref: reference; a: addr);
beginbody 0:
stvsd 0
endbody;
.
prefix asgnrefset;
procedure asgnrefset(var ref: reference; s: pat32);
beginbody 0:
stvsd 0
endbody;
.
prefix asgnsempaddr;
procedure asgnsempaddr(var p : ^ semaphore; var address : addr);
beginbody 0:
stvsd 0
endbody;
.
prefix asgnsetint;
procedure asgnsetint(var d: pat16; s: integer);
beginbody 0:
stvsw 0
endbody;
.
prefix asgnsetref;
procedure asgnsetref(var d: pat32; var s: reference);
beginbody 0:
revsd 0
stvsd 0
endbody;
.
prefix assign2;
procedure assign2(var map : mem_map_type; mask : integer);
beginbody 0:
;
stvsw 0 ;
endbody;
.
prefix balloc;
procedure balloc;
beginbody 8:
b. d#, firstparam.
firstparam = lastparam - 11 ;
d#1 = firstparam ; ^ r
d#2 = d#1 + 4 ; ^ p
d#3 = d#2 + 4 ; ^ sem
revld d#1 ; push ^ r
revld d#2 ; push ^ p
cwait ; wait
cwtac ; test and clear
revld d#1 ; push ^ r
revsd 0 ; push r
revld d#3 ; push ^ sem
stvsd answer ;
e.
endbody;
.
prefix ownertest;
function ownertest(var p : pool 1; var r : reference) : boolean;
beginbody 0:
revsd 0
revsd owner
teqad
endbody;
.
prefix bcheck;
procedure bcheck;
beginbody 0:
revlw lastparam-1
revpw ; convert appetite in words to bytes
uadd ;
renpb ;
endbody;
.
prefix clearlevel;
procedure clearlevel;
beginbody 0:
;
iocci ; clear interrupt
endbody;
.
prefix control;
procedure control(control_word : integer; var ch_msg : reference);
beginbody 0:
;
iocda ; get device address
iowc ; write control
endbody;
.
prefix controlclr;
procedure controlclr(control_word : integer; var ch_msg : reference);
beginbody 0:
stnhb 4 ; skip last param
revgb level ; get device address
ionci ; next clear interrupt
iowc ; write control
endbody;
.
prefix controlclr;
procedure controlclr(control_word : integer );
beginbody 0:
revgb level ; get device address
ionci ; next clear interrupt
iowc ; write control
endbody;
.
prefix copywords;
procedure copywords(destination : addr; source : addr; count : integer);
beginbody 2:
rechw 1
shc
moveg
endbody;
.
prefix defincpntr;
procedure defincpntr(var owner : ^ ext_incarnation_descriptor;
base : integer;
disp : integer);
beginbody 0:
;
stvsd 0 ;
endbody;
.
prefix defineptr;
procedure defineptr(var pointer : addr;
start : addr;
index : integer;
var dope : dope_vector);
beginbody 0:
;
index ;
stvsd 0 ;
endbody;
.
prefix eoi;
function eoi : boolean;
beginbody 2:
b. f#.
mbtes 2 ; push eoi
e.
endbody;
.
prefix equalref;
function equalref(var a,b : reference):boolean;
beginbody 2:
rechw 4
stcea
endbody;
.
prefix excptcall;
procedure excptcall(excode : integer);
beginbody 0:
mxept
endbody;
.
prefix exchange;
procedure exchange(var r: reference; var p: ^message_header);
beginbody 0:
cexch ; exchange 4 bytes
endbody;
.
prefix getaddr;
procedure getaddr(var dest : addr; source : addr);
beginbody 0:
revsd 0
stvsd 0
endbody;
.
prefix getbufparam;
procedure getbufparam(var i : record
saddr : addr;
count,top : integer
end;
first,last : integer;
var msg : reference);
beginbody 2:
ioibx
rechw 8 ; push length to setst
setst
endbody;
.
prefix getbyte;
procedure getbyte(var result: byte; pointer: addr);
beginbody 0:
revsb 0
stvsb 0
endbody;
.
prefix getincpntr;
procedure getincpntr(var pr: ^ ext_incarnation_descriptor;
var p : ext_incarnation_descriptor);
beginbody 0:
stvsd 0
endbody;
.
prefix getinteger;
procedure getinteger(var result : integer; pointer : addr);
beginbody 0:
;
revsw 0 ; push operand
stvsw 0 ; pop result
endbody;
.
prefix getlfgf;
procedure getlfgf (var lf, gf: addr);
beginbody 4:
reagd -1
stvsd 0 ; get global frame ( even disp )
reald 0
stvsd 0 ; get local frame
endbody;
.
prefix getoflowmask;
function getoflowmask : boolean;
beginbody 2:
mbtes 1 ; 'suppress overlow bit'
endbody;
.
prefix getregister;
procedure getregister(var value : integer; index : integer);
beginbody 0:
;
crget ; getregister
stvsw 0 ; pop result
endbody;
.
prefix initextref;
procedure initextref(var r : reference; var msg_header : ext_message_header);
beginbody 0:
stvsd 0 ;
endbody;
.
prefix initref;
procedure initref(var r : reference;
var msg_header : message_header);
beginbody 0:
;
stvsd 0 ;
endbody;
.
prefix initscrtref;
procedure initscrtref(var secretref : ^ secret_vector; address : addr);
beginbody 0:
stvsd 0
endbody;
.
prefix jumpto;
procedure jumpto(address : addr);
beginbody 0:
jmppd
endbody;
.
prefix linklast;
procedure linklast(queueaddr: addr;elemptr : ^ ext_incarnation_descriptor);
beginbody 8:
reasd 1 ; make address odd
reaxd
reasd -3
reaxd
revsd -11
cllst
stnhb 8
endbody;
.
prefix linkmessage;
procedure linkmessage(var r : reference);
beginbody 8:
revsd 0
revpd
revgd msgchain
stvsd mmsgchain
stvgd msgchain
endbody;
.
prefix locked;
function locked(var sem : semaphore) : boolean;
beginbody 0:
tlock ;test locked
endbody;
.
prefix movebytes;
procedure movebytes( count : integer; var frombyte : byte; fromindex : integer;
var tobyte : byte; toindex : integer);
(* move 'count' bytes starting at 'frombyte(fromindex)' to
'tobyte(toindex)'. nb nb nb no check at all !!!!!!!!!! *)
(* 81 03 03 jaba *)
beginbody 6 :
uadd ; index
reaxd ; get top
reasd -9 ; addr of frombyte
rechw 6 ; prepare move
revsm ; push frombyte and fromindex
uadd ; index
reaxd ; get top
revsw -15; count
moveg ; move
stnhb 8 ; unstack
endbody;
.
prefix nextrefp;
procedure nextrefp(var refp : ^ reference);
beginbody 4:
revpd ; double tos
revsd 0 ; push refp
revsd 4 ; push refp^.next
stvsd 0 ;
endbody;
.
prefix nil;
function nil(var r : ^ niltype) : boolean;
beginbody 0:
tnill ;test nill
endbody;
.
prefix open;
function open(var sem : semaphore) : boolean;
beginbody 0:
topen ;test opened
endbody;
.
prefix openpool;
function openpool(var p: pool 1): boolean;
beginbody 0:
topen ;test opened
endbody;
.
prefix passive;
function passive(var sem : semaphore) : boolean;
beginbody 0:
tnill ;test nill
endbody;
.
prefix pop;
procedure pop(var r1, r2: reference);
beginbody 0:
lpop
endbody;
.
prefix push;
procedure push(var r1, r2: reference);
beginbody 0:
lpush
endbody;
.
prefix ptraddr;
function ptraddr(a : addr) : ^niltype;
beginbody 0:
endbody;
.
prefix putaddr;
procedure putaddr(dest,source : addr);
beginbody 0:
;
stvsd 0 ;
endbody;
.
prefix putinteger;
procedure putinteger(dest : addr; source : integer);
beginbody 0:
stvsw 0
endbody;
.
prefix inbyteblock;
procedure inbyteblock
(var next : integer;
first,last : integer;
var msg : reference;
var ch_msg : reference);
beginbody 0:
stnhb 4 ;skip last param temporary
ioibx ; initblock_io
iorbb ; rbb
stvsw 0 ; pop next
endbody;
.
prefix inbyteblock;
procedure inbyteblock
(var next : integer;
first, last : integer;
var msg : reference );
beginbody 0:
ioibx ; initblock_io
iorbb ; rbb
stvsw 0 ; pop next
endbody;
prefix inwordblock;
procedure inwordblock
(var next : integer;
first,last : integer;
var msg : reference;
var ch_msg : reference);
beginbody 0:
stnhb 4 ; skip last param temporary
ioibx ; initblock_io
iorbw ; read_block_of_words
stvsw 0 ; pop next
endbody;
.
prefix inwordblock;
procedure inwordblock
(var next : integer;
first, last : integer;
var msg : reference );
beginbody 0:
ioibx ; initblock_io
iorbw ; read_block_of_words
stvsw 0 ; pop next
endbody;
prefix readbyte;
procedure readbyte( var destination, source : byte );
beginbody 0:
;
readb ; revsb without parity check
stvsb 0 ; store result
endbody;
.
prefix readword;
procedure readword( var destination, source : integer );
beginbody 0:
readw ; revsw without parity check
stvsw 0 ; store result
endbody;
.
prefix readram;
procedure readram(var result : byte; index : integer);
beginbody 0:
;
crram ; read_controleprocessor_ram
stvsb 0 ; pop byte
endbody;
.
prefix inword;
procedure inword(var word : integer; var ch_msg : reference);
beginbody 0:
;
iocda ; get device address
iorw ; readword
stvsw 0 ; pop word
endbody;
.
prefix ref;
function ref(var sem : semaphore) : ^ semaphore;
beginbody 0:
endbody;
.
prefix refpool;
function refpool(var p : pool 1) : ^ pool 1;
beginbody 0:
endbody;
.
prefix refshadow;
function refshadow(var sh : shadow) : ^ shadow;
beginbody 0:
endbody;
.
prefix release;
procedure release(var r : reference);
beginbody 0:
crele owner ;
endbody;
.
prefix return;
procedure return(var r : reference);
beginbody 0:
crele answer ;
endbody;
.
prefix requeue;
procedure requeue (var q: addr);
beginbody 0:
cskip
endbody;
.
prefix scheduler;
procedure scheduler;
beginbody 6:
b. r#.
reaad r#1
rechw 15
crput ;level1.ic:= r#1
rechw 14
crput
jmprw r#2
r#1: sched ; scheduler loop
jmprw r#1
r#2:
e.
endbody;
.
prefix selectlevel;
procedure selectlevel(level : integer);
beginbody 0:
;
csell ; select level
endbody;
.
prefix sense;
procedure sense(var status_in : integer;
status_out : integer;
var ch_msg : reference);
beginbody 0:
;
iocda ; get device address
iors ; read status
stvsw 0 ; pop result
endbody;
.
prefix sensesem;
procedure sensesem(var r : reference; var sem : semaphore);
beginbody 0:
csens
endbody;
.
prefix setexcept;
procedure setexcept;
beginbody 4:
b. expnt.
reaad expnt ; gf.exception-routine := just after here
stvgd expoint
pexit 2
expnt:
e.
endbody;
.
prefix setinterrupt;
procedure setinterrupt( var ch : reference );
beginbody 0:
iocda ; get device addr
cslev ; set interrupt
endbody;
.
prefix setoflowmask;
procedure setoflowmask (overflow: boolean);
beginbody 0:
mbset 1 ; 'overflow mask bit'
endbody;
.
prefix setqueueptr;
procedure setqueueptr(var queueptr : addr; var queue : addr);
beginbody 2:
reasd 1 ; make address odd
stvsd 0
endbody;
.
prefix setregcouble;
procedure setregcouble(index: integer; var a: addr);
beginbody 4:
reaxd ;push lu
revsw -5 ;push index
rechw 1 ;push 1
add
crput ;register(index+1):=a.disp
reaxd ;push lu
revsw -3 ;push index
crput ;register(index):=a.base
stnhb 2 ;
endbody;
.
prefix setregister;
procedure setregister(walue,index : integer);
beginbody 0:
crput ; putregister
endbody;
.
prefix signal;
procedure signal(var r : reference; var sem : semaphore);
beginbody 0:
csign
endbody;
.
prefix startdriver;
procedure startdriver(var p: ext_incarnation_descriptor);
beginbody 0:
reasd 1 ; make address odd
cstdr
endbody;
.
prefix startschedule;
procedure startschedule;
beginbody 2:
rechw 1
cslev ; set interrupt 1 (= scheduler level)
endbody;
.
prefix stopprocess;
procedure stopprocess(var p: ext_incarnation_descriptor);
beginbody 4:
reasd 1 ; make address odd
rechw 16384 ; get nill addr
revpw ; ( dummy displacement )
cstop
endbody;
.
prefix stvsb0;
procedure stvsb0(var d,s: byte);
beginbody 0:
revsb 0
stvsb 0
endbody;
.
prefix stvsd0;
procedure stvsd0(var a : addr; b : ^ niltype);
beginbody 0:
stvsd 0
endbody;
.
prefix stvsd0;
procedure stvsd0(var a : ^ niltype; b : addr);
beginbody 0:
stvsd 0
endbody;
.
prefix stvsw0;
procedure stvsw0(var a : integer; b : integer);
beginbody 0:
stvsw 0
endbody;
.
prefix timestep;
procedure timestep (p: addr);
beginbody 0:
mtime
endbody;
.
prefix timedout;
function timedout : boolean;
beginbody 2:
rechw 0
stvgw timeroffset ; own.timer := 0;
mbtes 4 ; timeout bit
rechw 0
mbset 4 ; clear time out bit
endbody;
.
prefix uadd;
function uadd( a, b : integer) : integer;
beginbody 0:
uadd
endbody;
.
prefix udiv;
function udiv(a,b : integer) : integer;
beginbody 0:
udiv
endbody;
.
prefix ult;
function ult (i,j : integer): boolean;
beginbody 0:
ult; unsigned less-than
endbody;
.
prefix umod;
function umod(a,b : integer) : integer;
beginbody 0:
umod
endbody;
.
prefix umul;
function umul(a,b : integer) : integer;
beginbody 0:
umul
endbody;
.
prefix usub;
function usub( a, b : integer ) : integer;
beginbody 0:
usub
endbody;
.
prefix wait;
procedure wait(var r : reference; var sem : semaphore);
beginbody 0:
cwait ; wait
cwtac ; test and clear
endbody;
.
prefix waiti;
procedure waiti;
beginbody 0:
mwi
mwtac
stnhb 2 ; skip result
endbody;
.
prefix waitd;
procedure waitd(delay : integer);
beginbody 0:
stvgw timeroffset ; own.timer := delay
mwt
mwtac
stnhb 2 ; skip result
endbody;
.
prefix waitt;
procedure waitt;
beginbody 2:
mwt
mwtac
stnhb 2 ; skip result
endbody;
.
prefix waitid;
function waitid(delay : integer): activation;
beginbody 0:
stvgw timeroffset ; own.timer := dealy
mwit
mwtac
endbody;
.
prefix waitit;
function waitit: activation;
beginbody 0:
mwit
mwtac
endbody;
.
prefix waitis;
function waitis (var r: reference; var s: semaphore): activation;
beginbody 0:
mwis
mwtac
endbody;
.
prefix waitsd;
function waitsd (var r: reference; var s: semaphore; delay : integer): activation;
beginbody 0:
stvgw timeroffset ; own.timer := delay
mwst
mwtac
endbody;
.
prefix waitst;
function waitst(var r: reference; var s: semaphore): activation;
beginbody 0:
mwst
mwtac
endbody;
.
prefix waitisd;
function waitisd (var r: reference; var s: semaphore; delay : integer): activation;
beginbody 0:
stvgw timeroffset ; own.timer := delay
mwist
mwtac
endbody;
prefix waitist;
function waitist (var r: reference; var s: semaphore): activation;
beginbody 0:
mwist
mwtac
endbody;
.
.
prefix ctrwaitid;
function ctrwaitid (c: integer; delay : integer): activation;
beginbody 0:
stvgw timeroffset ; own.timer := delay
mcit
mwtac
endbody;
.
prefix ctrwaitit;
function ctrwaitit (c: integer): activation;
beginbody 0:
mcit
mwtac
endbody;
.
prefix ctrwaitis;
function ctrwaitis (c: integer; var r: reference; var s: semaphore): activation;
beginbody 0:
mcis
mwtac
endbody;
prefix ctrwaitisd;
function ctrwaitisd (c: integer; var r: reference; var s: semaphore; delay: integer): activation;
beginbody 0:
stvgw timeroffset ; own.timer := delay
mcist
mwtac
endbody;
.
prefix ctrwaitist;
function ctrwaitist (c: integer; var r: reference; var s: semaphore): activation;
beginbody 0:
mcist
mwtac
endbody;
.
prefix outbyteblock;
procedure outbyteblock
(var next : integer;
first,last : integer;
var msg : reference;
var ch_msg : reference);
beginbody 0:
stnhb 4 ; skip last param temporary
ioibx ; initblock_io
iowbbc ; write_block_of_bytes
stvsw 0 ; pop next
endbody;
.
prefix outbyteblock;
procedure outbyteblock
(var next : integer;
first, last : integer;
var msg : reference);
beginbody 0:
ioibx ; initblock_io
iowbbc ; write_block_of_bytes
stvsw 0 ; pop next
endbody;
prefix outwordblock;
procedure outwordblock
(var next : integer;
first,last : integer;
var msg : reference;
var ch_msg : reference);
beginbody 0:
stnhb 4 ; skip last param temporary
ioibx ; initblock_io
iowbwc ; write_block_of_words
stvsw 0 ; pop next
endbody;
.
prefix outwordblock;
procedure outwordblock
(var next : integer;
first, last : integer;
var msg : reference );
beginbody 0:
ioibx ; initblock_io
iowbwc ;write_block_of_words
stvsw 0 ; pop next
endbody;
prefix writeram;
procedure writeram(index,walue : integer);
beginbody 0:
cwram
endbody;
.
prefix writeramclr;
procedure writeramclr(index,walue : integer);
beginbody 0:
ionci ; next clear interrupt
cwram ; write ram
endbody;
.
prefix outword;
procedure outword(word : integer; var ch_msg : reference);
beginbody 0:
;
iocda ; get device address
ioww ; write word
endbody;
.
prefix outwordclr;
procedure outwordclr(word : integer; var ch_msg : reference);
beginbody 0:
stnhb 4 ; skip last param
revgb level ; get device address
ionci ; next clear interrupt
ioww ; write word
endbody;
.
prefix outwordclr;
procedure outwordclr( word : integer );
beginbody 0:
revgb level ; get device address
ionci ; next clear interrupt
ioww ; write word
endbody;
.
«eof»