         << LINES .001/.009 ARE RESERVED FOR SYSTEMS INTEGRATION >>     00000001
  VECTSIZE:=INTEGER(CORE(DSTADDR + 2D).(2:14));                <<*9111>>28374000
  << CHARFLAG:=FALSE; >>                                       <<*1393>>28482000
define subtype = integer(work1.(4:4))#;  << Port AFT subtype >>         29164100
byte array port'names(*) = PB := "PORTS ","PORTS ",                     29164200
  "REMOTE","PORTS ","PORTS ","IMFSNA","PORTS ","SERVER",                29164300
  "PORTS ","PORTS ","SNA X ","PORTS ","PORTS ","ADSIPC",                29164400
  "PORTS ","PORTS ";                                                    29164500
                                                                        29164600
        << CHARFLAG:= FALSE; >>                                <<*1393>>29410000
                  move bbuf(58) := port'names(subtype*6),(6);           29528000
                   if work1.(0:4) = 0 or work1.(0:4) = 6 or             29530100
                      work1.(0:4) = 8 then                              29530200
                     begin  << format only if filesys aft >>            29530300
                     end;                                               29554100
                  19                 Port Dictionary                    29742100
                  20                 PortDST                            29742200
                  21                 PortAFT mapping DST                29742300
                  22                 BufferCB DST                       29742400
                  23                 Xport Buffers                      29742500
                  24                 SNA HSCB                           29742600
                  25                 BSC IMF screen XDS                 29742700
                  26                 SNA IMF screen XDS                 29742800
                  27                 ADS PTOP buffer DST                29742900
                  28                 ADS RFA & RBDA buffer DST          29743000
                  29                 ADS Local Socket DST               29743100
integer dstsize;                                                        29810100
double dstaddr;                                                         29810200
dst'type(%21) := 19;                                                    29828100
dst'type(%71) := 20;                                                    29828200
dst'type(%72) := 21;                                                    29828300
$edit void=29868000                                                     29850000
  if = then                                                    <<s2372>>29868050
    begin   << FCBDST is present >>                            <<s2372>>29868100
    NUM:=CORE(FCBDST);                                         <<s2372>>29868150
    IND:=%10;                                                  <<s2372>>29868200
    WHILE IND<NUM DO                                           <<s2372>>29868250
      BEGIN                                                    <<s2372>>29868300
      DSTNUM:=CORE(FCBDST+DOUBLE(IND));                        <<s2372>>29868350
      IF DSTNUM<4096 AND DSTNUM>0 THEN                         <<s2372>>29868400
        DST'TYPE(DSTNUM):=3;                                   <<s2372>>29868450
      IF DSTNUM=0 THEN IND:=NUM;                               <<s2372>>29868500
      IND:=IND+1;                                              <<s2372>>29868550
      END;                                                     <<s2372>>29868600
    end;   << FCB present check >>                             <<s2372>>29868650
<< search for PortDSTs >>                                               29930020
if dstentries > 4095 then dstentries := 4095;                           29930040
for dstno := %73 until dstentries do                                    29930060
  if dst'type(dstno) = 0 or dst'type(dstno) = 2 then                    29930080
    begin   << not already catagorized >>                               29930100
    dstentry := double(dstno*4) + dstdefin;                             29930120
    dstsize := core(dstentry).(3:13)*4;                                 29930140
    dstaddr := dsttoaddr(dstno);                                        29930160
    if = then                                                           29930180
      begin                                                             29930200
      if integer(core(dstaddr)) = dstno and                             29930220
         integer(core(dstaddr +1D)) = dstsize then                      29930240
        begin  << most likely a PortDST of some sort >>                 29930260
        dst'type(dstno) := 20;                                          29930280
        if integer(core(dstaddr + 4D)) = %11 and  << MsgSize >>         29930300
           integer(core(dstaddr + 5D)) = 2 and  << cntx size >>         29930320
           integer(core(dstaddr + 21D)) = %110 then <<UserSz>>          29930340
          begin   << most likely a BufferCB DST >>                      29930360
          dst'type(dstno) := 22;                                        29930380
          <<BufferCB is in memory, find actual BufferDSTs>>             29930400
          ind := core(dstaddr + 2D) +%10;  << @UserReg(8) >>            29930420
          for indx := 0 until 15 do                                     29930440
            begin                                                       29930460
            dstnum := core(dstaddr + double(ind + indx));               29930480
            if %73 <= integer(dstnum) <= 4095 then                      29930500
              dst'type(dstnum):=23;                                     29930520
            end;                                                        29930540
          end;    << likely BufferCB DST >>                             29930560
        end;  << most likely a port dst >>                              29930580
      end;   << present dst >>                                          29930600
    end;  << not already catatorized >>                                 29930620
equate tts'type = 7,                                                    30018100
       iowait'port'type = 9;                                            30018200
define aft'subtype = (4:4)#;                                            30018300
       if aft00.fstype = iowait'port'type then                          30062020
         begin                                                          30062040
         case aft00.aft'subtype of                                      30062060
           begin                                                        30062080
     << 0>>;       << unused >>                                         30062100
     << 1>>;       << unused >>                                         30062120
     << 2>>begin   << ADS RFA & PTOP >>                                 30062140
           if aft00.(8:4) = 2 then                                      30062160
             begin   << ptop aft >>                                     30062180
             cbtdst := aft02;  << ptop buffer dst >>                    30062200
             if %70 <= integer(cbtdst) <= 4095 and                      30062220
               dst'type(cbtdst) = 0 then dst'type(cbtdst) :=27;         30062240
             end                                                        30062260
           else if aft00.(8:4) = 1 or aft00.(8:4) = 4 then              30062280
             begin   << RFA or RBDA  aft >>                             30062300
             cbtdst := aft02;  << RFA or RBDA  buffer dst >>            30062320
             if %70 <= integer(cbtdst) <= 4095 and                      30062340
               dst'type(cbtdst) = 0 then dst'type(cbtdst) :=28;         30062360
             end                                                        30062380
           end;                                                         30062400
     << 3>>;       << unused >>                                         30062420
     << 4>>;       << unused >>                                         30062440
     << 5>>begin   << SNA IMF >>                                        30062460
           cbtdst := aft02;  << SNA IMF screen XDS >>                   30062480
           if %70 <= integer(cbtdst) <= 4095 and                        30062500
             dst'type(cbtdst) = 0 then dst'type(cbtdst) := 26;          30062520
           end;                                                         30062540
     << 6>>;       << unused >>                                         30062560
     << 7>>;       << ADS Appl Serv.  AFT contains no DST #s >>         30062580
     << 8>>;       << unused >>                                         30062600
     << 9>>;       << unused >>                                         30062620
     <<10>>begin   << SNA Xport >>                                      30062640
           cbtdst := aft01;  << SNA HSCB DST >>                         30062660
           if %70 <= integer(cbtdst) <= 4095 and                        30062680
             dst'type(cbtdst) = 0 then dst'type(cbtdst) := 24;          30062700
           end;                                                         30062720
     <<11>>;       << unused >>                                         30062740
     <<12>>;       << unused >>                                         30062760
     <<10>>begin   << ADS IPC >>                                        30062780
           cbtdst := aft01;  << LOCAL SOCKET Info DST >>                30062800
           if %70 <= integer(cbtdst) <= 4095 and                        30062820
             dst'type(cbtdst) = 0 then dst'type(cbtdst) := 29;          30062840
           end;                                                         30062860
     <<14>>;       << unused >>                                         30062880
     <<15>>;       << unused >>                                         30062900
           end;   << end aft'subtype case stmt >>                       30062920
         end                                                            30062940
       else if aft00.fstype = tts'type  then << IMF/BSC >>              30062960
         begin                                                          30062980
         if not logical(aft00).(4:1) then                               30063000
           begin  << intrinsic's AFT, not monitor >>                    30063020
           cbtdst := aft02;                                             30063040
           if %70 <= integer(cbtdst) <= 4095 and                        30063060
             dst'type(cbtdst) = 0 then dst'type(cbtdst) := 25;          30063080
           end;                                                         30063100
         end                                                            30063120
       else                                                             30063140
$edit                                                                   30126000
          END                                                  <<s2372>>30135000
