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 - download

⟦32f08bcf0⟧ Rc489k_TapeFile, TextFile

    Length: 3840 (0xf00)
    Types: Rc489k_TapeFile, TextFile

Derivation

└─⟦aa55fa693⟧ Bits:30007479 SW8110/1 TAS/SOS/PRIMO Rel 2.3
    └─⟦this⟧ 

TextFile

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◀