$PAGE "DOMRJEDIT: Format MRJE DIT"                                      30664000
$control segment=tablesmr                                               30666000
comment                                                                 30668000
                                                                        30670000
purpose:                                                                30672000
                                                                        30674000
input parameters:                                                       30676000
                                                                        30678000
output parameters:                                                      30680000
                                                                        30682000
globals referenced:                                                     30684000
                                                                        30686000
globals altered:                                                        30688000
                                                                        30690000
data structures:                                                        30692000
                                                                        30694000
algorithm:                                                              30696000
                                                                        30698000
;                                                                       30700000
procedure do'mrje'dits;                                       <<mrje>>  30702000
begin                                                         <<mrje>>  30704000
                                                              <<mrje>>  30706000
double scratch,ditptr,lpdtbase;                                         30708000
logical array scr0(*)=scratch;                                <<mrje>>  30710000
logical array scr1(*)=scr0(1);                                <<mrje>>  30712000
logical work1,size,dtype;                                     <<mrje>>  30714000
integer indx,ldev,max'ldev;                                   <<mrje>>  30716000
                                                              <<mrje>>  30718000
<< start of printing the mrje dits >>                         <<mrje>>  30720000
                                                              <<mrje>>  30722000
<< test for mrje installed >>                                 <<mrje>>  30724000
                                                              <<mrje>>  30726000
 scratch := %1000d + %375d;  << abs mem for consmrje plabel>> <<mrje>>  30728000
 if core( scratch ) = 0 then return;  << mrje not installed>> <<mrje>>  30730000
                                                              <<mrje>>  30732000
<< get highest ldev >>                                        <<mrje>>  30734000
lpdtbase := dsttoaddr(%15);                                             30736000
 max'ldev := core( lpdtbase);                                           30738000
                                                              <<mrje>>  30740000
 for ldev := 1 until max'ldev do                              <<mrje>>  30742000
  begin                                                       <<mrje>>  30744000
                                                              <<mrje>>  30746000
   work1:=core(lpdtbase+double(ldev*4));                                30748000
   if integer(work1) <0 then                                  <<mrje>>  30750000
      go not'mrje'device;  << virtual dev >>                  <<mrje>>  30752000
  ditptr:=double(core(lpdtbase+double(ldev*4+2)))+%1000d;               30754000
  scratch:=double(core(ditptr+4d))+%1000d;                              30756000
   work1:=core(scratch+5d);<<dlt word 5/ditsize/devtype>>     <<mrje>>  30758000
   size:=work1.(0:8);                                         <<mrje>>  30760000
   dtype:=work1.(8:8);                                        <<mrje>>  30762000
   if dtype <> 22 then go not'mrje'device;                    <<mrje>>  30764000
   move bbuf := "(MRJE DEVICE)";                               <<01791>>30766000
   printline;                                                 <<mrje>>  30768000
   skiplines(1);                                              <<mrje>>  30770000
   move bbuf(12):="UNIT";                                     <<mrje>>  30772000
   @pbuf:=@bbuf+17;                                           <<mrje>>  30774000
   work1:=core(ditptr+10d);                                   <<mrje>>  30776000
   work1:=work1.(8:8);                                        <<mrje>>  30778000
   ascii(work1,10,pbuf);                                      <<mrje>>  30780000
   @pbuf:=@bbuf+32;                                           <<mrje>>  30782000
   move bbuf(20):="LOGICAL DEV";                              <<mrje>>  30784000
   ascii(ldev,10,pbuf);                                       <<mrje>>  30786000
   move bbuf(37):="FLAGS =";                                  <<mrje>>  30788000
   @pbuf:=@bbuf+45;                                           <<mrje>>  30790000
   work1:=core(ditptr);                                       <<mrje>>  30792000
   putnum(work1);<<flags>>                                    <<mrje>>  30794000
   move bbuf(55):="NEXT DIT =";                               <<mrje>>  30796000
   work1:=core(ditptr+1d);                                    <<mrje>>  30798000
   @pbuf:=@bbuf+66;                                           <<mrje>>  30800000
   putnum(work1);<<next dit>>                                 <<mrje>>  30802000
   move bbuf(74):="DLTP =";                                   <<mrje>>  30804000
   work1:=core(ditptr+4d);                                    <<mrje>>  30806000
   @pbuf:=@bbuf+81;                                           <<mrje>>  30808000
   putnum(work1);<<dltp>>                                     <<mrje>>  30810000
   move bbuf(104):="IOQP =";                                  <<mrje>>  30812000
   work1:=core(ditptr+2d);                                    <<mrje>>  30814000
   @pbuf:=@bbuf+111;                                          <<mrje>>  30816000
   putnum(work1);<<ioqp>>                                     <<mrje>>  30818000
   printline;                                                 <<mrje>>  30820000
   skiplines(1);                                              <<mrje>>  30822000
   if size=0 then return;                                     <<mrje>>  30824000
   scratch:=ditptr-%1000d;                                    <<mrje>>  30826000
                                                               <<03752>>30828000
<< now print the actual dit >>                                 <<03752>>30830000
   print'octal'dit( ditptr, scr1, integer( size ));            <<03752>>30832000
                                                               <<03752>>30834000
   skiplines(2);                                              <<mrje>>  30836000
 not'mrje'device:                                             <<mrje>>  30838000
   end;   << end of ldev for-loop >>                          <<mrje>>  30840000
                                                              <<mrje>>  30842000
 bbuf:=" ";                                                   <<mrje>>  30844000
 move bbuf(1):=bbuf,(40);                                     <<mrje>>  30846000
end  << do'mrje'dit >>;                                       <<mrje>>  30848000
