home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / 3x400 / dltobs.lzh / DLTOBS.ASM next >
Assembly Source File  |  1988-06-06  |  5KB  |  71 lines

  1.     /* Program - DLTPGMOBS */                                     ;
  2.     /* Written - 10/15/86 */                                      ;
  3.     /* Author  - R. Cozzi, Jr.     */                             ;
  4.     /* ----------------------------------------------------- */   ;
  5.     /* Purpose: -------------------------------------------- */   ;
  6.     /* -------- To remove a program's observability.       * */   ;
  7.     /* *        Thus, deleting the program's ability       * */   ;
  8.     /* *        to be debugged.                            * */   ;
  9.     /* *                                                   * */   ;
  10.     /* Modification Log:   --------------------------------- */   ;
  11.     /* ----------------------------------------------------- */   ;
  12.     /* Date     By         Description                       */   ;
  13.     /* -------- ---------- --------------------------------- */   ;
  14.     /*                                                       */   ;
  15.     /* ----------------------------------------------------- */   ;
  16.                                                                   ;
  17. DCL SPCPTR P.PROGRAM PARM                                         ;
  18. DCL DD PROGRAM CHAR(20) BAS(P.PROGRAM)                            ;
  19. DCL DD PGMNAM  CHAR(10) DEF(PROGRAM) POS(1)                       ;
  20. DCL DD PGMLIB  CHAR(10) DEF(PROGRAM) POS(11)                      ;
  21. DCL OL PLIST (P.PROGRAM) PARM EXT                                 ;
  22.                                                                   ;
  23. DCL SYSPTR .PGMPTR /* Pointer to program name */                  ;
  24. DCL SYSPTR .LIBPTR /* Pointer to library name */                  ;
  25.                                                                   ;
  26. /* Resolve System Pointer template to program name */             ;
  27. DCL DD .PGMTEMPL  CHAR(34)                                        ;
  28. DCL DD * CHAR(2)  DEF(.PGMTEMPL) POS(1) INIT(X'0201')             ;
  29. DCL DD .PGMNAME   CHAR(30) DEF(.PGMTEMPL) POS(3) INIT             ;
  30. DCL DD * CHAR(2)  DEF(.PGMTEMPL) POS(33) INIT(X'0000')            ;
  31.                                                                   ;
  32. /* Resolve System Pointer template to program name */             ;
  33. DCL DD .LIBTEMPL  CHAR(34)                                        ;
  34. DCL DD * CHAR(2)  DEF(.LIBTEMPL) POS(1) INIT(X'0401')             ;
  35. DCL DD .LIBNAME   CHAR(30) DEF(.LIBTEMPL) POS(3) INIT             ;
  36. DCL DD * CHAR(2)  DEF(.LIBTEMPL) POS(33) INIT(X'0800')            ;
  37.                                                                   ;
  38. DCL CON *BLANKS CHAR(1) INIT(X'40')                               ;
  39. DCL CON *BLANK  CHAR(1) INIT(X'40')                               ;
  40.                                                                   ;
  41. ENTRY * (PLIST) EXT                                               ;
  42.                                                                   ;
  43.   /*  Put program name into pointer template */                   ;
  44.   CPYBLAP    .PGMNAME,PGMNAM,*BLANKS                              ;
  45.                                                                   ;
  46.         /*  If %sst(&PGM 11 10) = *BLANKS or *LIBL then DO */     ;
  47.                                                                   ;
  48.   CMPBLAP(B) PGMLIB,C'*LIBL',*BLANKS/EQ(.GETPGM)                  ;
  49.   CMPBLAP(B) PGMLIB,*BLANKS,*BLANKS/EQ(.GETPGM)                   ;
  50.     CPYBLAP  .LIBNAME,PGMLIB,*BLANKS                              ;
  51.     RSLVSP   .LIBPTR,.LIBTEMPL,*,*       /* Resolve to library */ ;
  52.     RSLVSP   .PGMPTR,.PGMTEMPL,.LIBPTR,*                          ;
  53.     B        .DLTPGMOBS  /* Goto delete program observability */  ;
  54.                                                                   ;
  55.         /*  ENDDO       */                                        ;
  56.         /*  ELSE  DO    */                                        ;
  57.                                                                   ;
  58. .GETPGM:     /* Resolve to Program.*LIBL   */                     ;
  59.     RSLVSP   .PGMPTR,.PGMTEMPL,*,*                                ;
  60.                                                                   ;
  61.         /*  ENDDO       */                                        ;
  62.                                                                   ;
  63. .DLTPGMOBS:                                                       ;
  64.    DELPGOBS  .PGMPTR   /* Delete program observability */         ;
  65.                                                                   ;
  66. .ENDPGM:                                                          ;
  67.                                                                   ;
  68.    DEACTPG *  /* Terminate the program */                         ;
  69.    RTX *      /* Return to caller */                              ;
  70.    PEND                                                           ;
  71.