         << LINES .001/.009 ARE RESERVED FOR SYSTEMS INTEGRATION >>     00000001
PROCEDURE DODSDIT (LDEV,TYPECHECK,LOCDIT);                     <<*1548>>30314000
VALUE  LDEV,TYPECHECK,LOCDIT;                                  <<*1548>>30316000
DOUBLE  LOCDIT;                                                <<*1548>>30319000
DOUBLE SCRATCH,DITPTR,LPDT,DSDEVPT;                            <<*1548>>30324000
   X25,     <<X25 OR BISYNC  MARKER>>                          <<*1548>>30331000
   DSDEV,      <<DEVICE TYPE & SUBTYPE FOR EACH LDEV>>         <<*1548>>30343000
               <<FROM DSDEVICE TABLE OF DSGLOBAL DST>>         <<*1548>>30343100
   IF X25  THEN MOVE BBUF(12) := "(IODSX CONTROLLER)"          <<*1548>>30396000
           ELSE MOVE BBUF(12) := "(IODS0 CONTROLLER)";         <<*1548>>30397000
   IF X25 THEN                                                          30399000
      BEGIN IF CORE(DITPTR).(15:1)=0  <<PSEUDO TERM.>>                  30399100
         THEN  MOVE BBUF(12) := "(IODSTRMX TERMINAL DEVICE)"            30399200
         ELSE  MOVE BBUF(12) := "(IOPAD0 TERMINAL DEVICE)"              30400000
      END                                                               30400100
    ELSE  MOVE BBUF(12) := "(IODSTRM0 TERMINAL DEVICE)";                30400200
   IF DTYPE=32 THEN                                                     30400500
       MOVE BBUF(12) := "(IOPAD1 PRINTER DEVICE)" ;                     30400600
 MOVE BBUF(45) := "TYPE";                                               30405000
@PBUF := @BBUF + 50;                                                    30405100
ASCII (dtype,10,pbuf);                                                  30405200
   LOCDIT := LOCDIT -%1000D; <<to make it non-sys-db>>                  30509000
   SCRATCH := DSTTOADDR(CORE(DOUBLE(%1320)));                  <<*1548>>30512100
   DSDEVPT := SCRATCH +  <<DSGLOBAL DST>>                      <<*1548>>30513000
               DOUBLE (CORE (SCRATCH + 2D));                   <<*1548>>30513100
   X25 := FALSE;     <<INITIALIZE X25>>                        <<*1548>>30565000
   BACKREF := INTEGER( CORE( SCRATCH +12D ) );                          30600000
    SCRATCH := DOUBLE(CORE(LPDT+DOUBLE(BACKREF*4)+2D));        <<*1548>>30601000
      IF LOCDIT <> SCRATCH << WRONG INP DIT POINTER >>         <<*1548>>30602000
   DSDEV:= CORE(DSDEVPT+DOUBLE(LOGICAL(LDINDX)*CORE(DSDEVPT)));<<*1548>>30607000
      IF DSDEV.(8:4) = 1 THEN X25 := TRUE;                     <<*1548>>30607100
   WHILE LD <>0 AND (NOT MULTIPT) DO                                    30624000
                                                                        30628000
      SCR0 := 0;                                                        30633000
