|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 9216 (0x2400) Types: TextFile Names: »htudskriv «
└─⟦cde9d517b⟧ Bits:30007477 RC8000 Backup tape fra HT's bus-radio system └─⟦6a563b143⟧ └─ ⟦this⟧ »htudskriv «
htudskriv. :4: udskriv: erklæringer \f message procedure out_xxx_bits side 1 - 810406/cl; procedure outboolbits(zud,b); value b; zone zud; boolean b; begin integer i; for i:= -11 step 1 until 0 do outchar(zud,if b shift i then '1' else '.'); end; procedure outintbits(zud,j); value j; zone zud; integer j; begin integer i; for i:= -23 step 1 until 0 do begin outchar(zud,if j shift i extract 1 = 1 then '1' else '.'); if i<>0 and abs(i) mod 6 = 0 then outchar(zud,'sp'); end; end; \f message procedure skriv_id side 1 - 820301/cl; procedure skriv_id(z,id,lgd); value id,lgd; integer id,lgd; zone z; begin integer type,p,li,lø,bo; type:= id shift (-22); case type+1 of begin <* 1: bus *> begin p:= write(z,<<d>,id extract 14); if id shift (-14) <> 0 then p:= p + write(z,".",1,string garagenavn(id shift (-14))); end; <* 2: linie/løb *> begin li:= id shift (-12) extract 10; bo:= id shift (-7) extract 5; if bo<>0 then bo:= bo + 'A' - 1; lø:= id extract 7; p:= write(z,<<d>,li,false add bo,(bo<>0) extract 1,"/",1,lø); end; <* 3: gruppe *> begin if id shift (-21) = 4 <* linie-gruppe *> then begin li:= id shift (-5) extract 10; bo:= id extract 5; if bo<>0 then bo:= bo + 'A' - 1; p:= write(z,<<d>,li,false add bo,(bo<>0) extract 1); end else <* special-gruppe *> p:= write(z,"G",1,<<d>,id extract 7); end; <* 4: telefon *> begin bo:= id shift (-20) extract 2; li:= id extract 20; case bo+1 of begin p:= write(z,string kanalnavn(li)); p:= write(z,<:K*:>); p:= write(z,<:OMR :>,string områdenavn(li)); p:= write(z,<:OMR*:>); end; end; end case; write(z,"sp",lgd-p); end skriv_id; <*+3*> \f message skriv_new_sem side 1 - 810520/cl; procedure skriv_new_sem(z,type,ref,navn); value type,ref; zone z; integer type,ref; string navn; <* skriver en identifikation af en semafor 'ref' i zonen z. type: 1=binær sem 2=simpel sem 3=kædet sem ref: semaforreference navn: semafornavn, max 18 tegn *> begin disable if testbit29 then write(z,"nl",1,"sp",26*(type-1),case type of(<:bs:>,<:ss:>,<:cs:>), true,5,<<zddd>,ref,true,19,navn); end; \f message procedure skriv_newactivity side 1 - 810520/hko/cl; <**> procedure skriv_newactivity(zud,actno,cause); <**> value actno,cause; <**> zone zud; <**> integer actno,cause; <**> begin <*+2*> <**> if testbit28 then <**> begin integer array field cor; <**> cor:= coroutine(actno); <**> write(zud,<: coroutine::>,<< dd>,actno,<: ident::>, <**> << zdd>,d.cor.coruident//1000); <**> end; <**> if -, testbit23 then goto skriv_newact_slut; <*-2*> <**> write(zud,"nl",1,<:newactivity(:>,<<d>,actno, <**> <:) cause=:>,<<-d>,cause); <**> if cause<1 then write(zud,<: !!!:>); <**> skriv_coru(zud,actno); <**> skriv_newact_slut: <**> end skriv_newactivity; <*-3*> <*+99*> \f message procedure skriv_activity side 1 - 810313/hko; <**> procedure skriv_activity(zud,actno); <**> value actno; <**> zone zud; <**> integer actno; <**> begin <**> integer i; <**> integer array iact(1:12); <**> <**> i:=system(12,actno,iact); <**> write(zud,"nl",1,<: activity(:>,<<d>,actno,<:) af :>,i,"sp",1, <**> if i=0 then <:neutral:> else (case sign(iact(3))+2 of <**> (<:disable:>,<:monitor:>,<:activity:>)),<: mode:>); <**> if i>0 and actno>0 and actno<=i then <**> begin <**> write(zud,"nl",1,"sp",4,<:tilstand= :>,case iact(8)+1 of <**> (<:tom:>,<:passivate:>, <**> <:implicit passivate:>,<:activate:>)); <**> if iact(1)<>0 then <**> write(zud,<: ventende på message:>,iact(1)); <**> if iact(7)>0 then <**> write(zud,"nl",1,"sp",4,<:virtuel stak::>,iact(7),"sp",2, <**> <:hovedlager stak benyttes af activity(:>,<<d>, <**> iact(2)); <**> write(zud,"nl",1,"sp",4,<:stak(top,bund,sidst,csr,cza)=:>, <**> iact(4),iact(5),iact(6),iact(10),iact(11)); <**> if iact(9)<> 1 shift 22 then <**> write(zud,"nl",1,"sp",4,<:'head of zonechain'=:>,iact(9)); <**> write(zud,"nl",1,"sp",4,<:'trap chain'=:>,iact(12)); <**> end; <**> end skriv_activity <*-99*> <*+98*> \f message procedure identificer side 1 - 810520/cl; procedure identificer(z); zone z; begin disable write(z,<:coroutine::>,<< dd>,curr_coruno, <: ident::>,<< zdd >,curr_coruid); end; \f message procedure skriv_coru side 1 - 810317/cl; <**> procedure skriv_coru(zud,cor_no); <**> value cor_no; <**> zone zud; <**> integer cor_no; <**> begin <**> integer i; <**> integer array field cor; <**> <**> <**> write(zud,"nl",1,<: coroutine: :>,<<d>,cor_no); <**> <**> cor:= coroutine(cor_no); <**> if cor = -1 then <**> write(zud,<: eksisterer ikke !!!:>) <**> else <**> begin <**> write(zud,<:; ident = :>,<<zdd>,d.cor.coruident//1000, <**> <: refbyte: :>,<<d>,cor,"nl",1, <**> <: prev: :>,<<dddd>,d.cor.prev,"nl",1, <**> <: next: :>,d.cor.next,"nl",1, <**> <: timerchain.prev: :>,d.cor(corutimerchain//2-1),"nl",1, <**> <: timerchain.next: :>,d.cor.corutimerchain,"nl",1, <**> <: opchain.prev: :>,d.cor(coruop//2-1),"nl",1, <**> <: opchain.next: :>,d.cor.coruop,"nl",1, <**> <: timer: :>,d.cor.corutimer,"nl",1, <**> <: priority: :>,d.cor.corupriority,"nl",1, <**> <: typeset: :>); <**> for i:= -11 step 1 until 0 do <**> write(zud,if d.cor.corutypeset shift i then <:1:> else <:.:>); <**> write(zud,"nl",1,<: testmask: :>); <**> for i:= -11 step 1 until 0 do <**> write(zud,if d.cor.corutestmask shift i then <:1:> else <:.:>); <*+99*> <**> skriv_activity(zud,cor_no); <*-99*> <**> end; <**> end skriv_coru; <*-98*> <*+98*> \f message procedure skriv_op side 1 - 810409/cl; <**> procedure skriv_op(zud,opref); <**> value opref; <**> integer opref; <**> zone zud; <**> begin <**> integer array field op; <**> real array field raf; <**> integer lgd,i; <**> real t; <**> <**> raf:= data; <**> op:= opref; <**> write(zud,"nl",1,<:op:>,<<d>,opref,<:::>); <**> if opref<first_op ! optop<=opref then <**> begin <**> write(zud,<: !!! illegal reference !!!:>,"nl",1); <**> goto slut_skriv_op; <**> end; <**> <**> lgd:= d.op.opsize; <**> write(zud,"nl",1,<<d>, <**> <: opsize :>,d.op.opsize,"nl",1, <**> <: optype :>); <**> for i:= -11 step 1 until 0 do <**> write(zud,if d.op.optype shift i then <:1:> else <:.:>); <**> write(zud,"nl",1,<<d>, <**> <: prev :>,d.op.prev,"nl",1, <**> <: next :>,d.op.next); <**> if lgd=0 then goto slut_skriv_op; <**> write(zud,"nl",1,<<d>, <**> <: kilde :>,d.op.kilde extract 10,"nl",1, <**> <: tid :>,<<zddddd>,systime(4,d.op.tid,t),<:.:>,t,"nl",1,<<d>, <**> <: retur-sem :>,if d.op.retur<>0 then <:cs:> else <:--:>,<<b>, d.op.retur,"nl",1, <**> <: opkode :>,<<b>,d.op.opkode shift (-12),"sp",1,<<d>, <**> d.op.opkode extract 12,"nl",1, <**> <: resultat :>,d.op.resultat,"nl",2, <**> <:data::>); <**> skriv_hele(zud,d.op.raf,lgd-data,1278); <**>slut_skriv_op: <**> end skriv_op; <*-98*> \f message procedure corutable side 1 - 810406/cl; procedure corutable(zud); zone zud; begin integer i; integer array field cor; write(zud,"ff",1,<:***** coroutines *****:>,"nl",2, <:no id ref chain timerch opchain timer pr:>, <: typeset testmask:>,"nl",2); for i:= 1 step 1 until maxcoru do begin cor:= coroutine(i); write(zud,<<zd>,i,<< zdd>,d.cor.coruident//1000,<< dddd>,cor, d.cor.prev,d.cor.next,d.cor(corutimerchain//2-1), d.cor.corutimerchain,d.cor(coruop//2-1),d.cor.coruop,<< ddddd>, d.cor.corutimer,<< dd>,d.cor.corupriority); outchar(zud,'sp'); outboolbits(zud,d.cor.corutypeset); outchar(zud,'sp'); outboolbits(zud,d.cor.corutestmask); outchar(zud,'nl'); end; end; ▶EOF◀