|
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: 3840 (0xf00) Types: Rc489k_TapeFile, TextFile
└─⟦aa55fa693⟧ Bits:30007479 SW8110/1 TAS/SOS/PRIMO Rel 2.3 └─⟦this⟧
bdisplay=algol connect.no list.yes begin integer i,parent,lgd,proc_state; integer array ia (1:2),process_ia(1:51); boolean første; array fpname, name(1:2); array field af; long array field laf; real runtime, start_time, wait_time, time,monitor_version; parent:=af:=laf:=0; system(5)move_core fra monitor version:(64,ia); monitor_version:=ia(1) shift (-12) + ia(1) extract 12 *0.01; system(5)move_core:(78,ia); lgd:=(ia(2)-ia(1))//2; begin integer array int_name_table (1:lgd); procedure head; write(out,<:<10>display of :>,fpname.laf, <: d.:>,<<dddddd>,systime(5,0,time), <:.:>,<<zddd>,time/100-0.3, <:<10>monitor version::>,<< dd.dd>,monitor_version, false add 32,31,<:claim::>, <:<10>name rel state start wait cpu size buf area int func.:>); procedure skriv_process(parent,niveau); value parent,niveau; integer parent,niveau; begin integer i; proc_state:=process_ia(5) extract 8; runtime:=process_ia.laf(14)/10000; time:=process_ia.laf(15)/10000; systime(4,time,start_time); time:=process_ia.laf(16)/10000; systime(4,time,wait_time); write(out,<:<10>:>,false add 32,2*niveau); outtext(out,16 - 2*niveau,process_ia.af,1); write(out,if process_ia(49)<>0 then <:*_:> else <:__:>); write (out, if proc_state = 11 then <:running :> else if proc_state = 200 then <:w. cpu :> else if proc_state = 8 then <:error :> else if proc_state = 176 then <:w. stop :> else if proc_state = 160 then <:w. stop :> else if proc_state = 184 then <:w. start :> else if proc_state = 168 then <:w. start :> else if proc_state = 204 then <:w. p func:> else if proc_state = 141 then <:w.mess. :> else if proc_state = 142 then <:w. answer:> else if proc_state = 143 then <:w. event :> else <:? :>, << bd.dd>,start_time/10000-0.003, << bd.dd>,wait_time/10000-0.003, <<dddddd.d>,runtime, << dddddd>,process_ia(12)-process_ia(11), << ddd>,process_ia(13) shift (-12), process_ia(13) extract 12, << dd >,process_ia(14) shift (-12)); if processia(14) extract 12=4095 then write(out,<: all:>) else for i :=0 step 1 until 11 do if processia(14) shift (-i) extract 1=1 then write(out,11-i); for i:=1 step 1 until lgd do begin system(5)move_core:(int_name_table(i)+2,process_ia); if process_ia(25)=parent then skriv_process(int_name_table(i),niveau+1); end; end ; system(5)move_core:(ia(1),int_name_table); if system(4,1,fpname)<>0 then for i:=1 step 1 until lgd do begin system(5)move_core:(int_name_table(i)+2,name); if name(1)=fpname(1) and name(2)=fpname(2) then parent:=int_name_table(i); end; if parent=0 then parent:=system(8,i,fpname); head; system(5)move_core:(parent+2,process_ia); skriv_process(parent,0); write(out,false add 10,2); end parent<>0; trapmode:=1024; end ; bdisplay s bdisplay driverproc bdisplay bdisplay all bdisplay tem scope project bdisplay finis ▶EOF◀