first command (this one works)
(DEFUN C:IFA()
(SETQ NAME (ENTNEXT))
(SETQ TAG "NIL")
(SETQ REVNO "A")
(SETQ DESC "ISSUED FOR APPROVAL")
(SETQ CAD "DMB")
(SETQ CHKD "ROB")
(SETQ APVD "PM")
(WHILE (/= TAG "REVNO1")
(SETQ NAME (ENTNEXT NAME))
(SETQ DATA (ENTGET NAME))
(SETQ ENTTYPE (CDR (ASSOC 0 DATA)))
(IF (= ENTTYPE "ATTRIB")
(SETQ TAG (CDR (ASSOC 2 DATA)))))
(IF (= TAG "REVNO1")
(REVISE_REV_BLOCK)))
Second routine
(DEFUN C:R0()
(SETQ NAME (ENTNEXT))
(SETQ TAG "NIL")
(SETQ REVNO (GETSTRING "ENTER REVISION NUMBER: "))
(SETQ DESC (GETSTRING "ENTER REV DESCRIPTION: "))
(SETQ CAD "DMB")
(SETQ CHKD "ROB")
(SETQ APVD "PM")
(WHILE (/= TAG "REVNO1")
(SETQ NAME (ENTNEXT NAME))
(SETQ DATA (ENTGET NAME))
(SETQ ENTTYPE (CDR (ASSOC 0 DATA)))
(IF (= ENTTYPE "ATTRIB")
(SETQ TAG (CDR (ASSOC 2 DATA)))))
(IF (= TAG "REVNO1")
(REVISE_REV_BLOCK)))
Command that both use.
(DEFUN REVISE_REV_BLOCK()
(SETQ OLDREV (ASSOC 1 DATA))
(SETQ NEWREV (CONS 1 REVNO))
(SETQ DATA (SUBST NEWREV OLDREV DATA))
(ENTMOD DATA)
(SETQ NAME (ENTNEXT NAME))
(SETQ DATA (ENTGET NAME))
(SETQ TD (RTOS (GETVAR "CDATE") 2 6))
(SETQ DATE (STRCAT (SUBSTR TD 5 2) "/"
(SUBSTR TD 7 2) "/"
(SUBSTR TD 3 2)))
(SETQ OLDDATE (ASSOC 1 DATA))
(SETQ NEWDATE (CONS 1 DATE))
(SETQ DATA (SUBST NEWDATE OLDDATE DATA))
(ENTMOD DATA)
(SETQ NAME (ENTNEXT NAME))
(SETQ DATA (ENTGET NAME))
(SETQ OLDINIT (ASSOC 1 DATA))
(SETQ NEWINIT (CONS 1 desc))
(SETQ DATA (SUBST NEWINIT OLDINIT DATA))
(ENTMOD DATA)
(SETQ NAME (ENTNEXT NAME))
(SETQ DATA (ENTGET NAME))
(SETQ OLDINIT (ASSOC 1 DATA))
(SETQ NEWINIT (CONS 1 cad))
(SETQ DATA (SUBST NEWINIT OLDINIT DATA))
(ENTMOD DATA)
(ENTUPD NAME)
(SETQ NAME (ENTNEXT NAME))
(SETQ DATA (ENTGET NAME))
(SETQ OLDINIT (ASSOC 1 DATA))
(SETQ NEWINIT (CONS 1 chkd))
(SETQ DATA (SUBST NEWINIT OLDINIT DATA))
(ENTMOD DATA)
(ENTUPD NAME)
(SETQ NAME (ENTNEXT NAME))
(SETQ DATA (ENTGET NAME))
(SETQ OLDINIT (ASSOC 1 DATA))
(SETQ NEWINIT (CONS 1 APVD))
(SETQ DATA (SUBST NEWINIT OLDINIT DATA))
(ENTMOD DATA)
(ENTUPD NAME)
(CHANGE_REV))
;(COMMAND "REGEN"))
(DEFUN CHANGE_REV()
(SETQ ENAME (ENTNEXT))
(SETQ TAG "NIL")
(WHILE (/= TAG "REVNO")
(SETQ ENAME (ENTNEXT ENAME))
(SETQ EDATA (ENTGET ENAME))
(SETQ ENTTYPE (CDR (ASSOC 0 EDATA)))
(IF (= ENTTYPE "ATTRIB")
(SETQ TAG (CDR (ASSOC 2 EDATA)))))
(SETQ OLDREV (ASSOC 1 EDATA))
(SETQ NEWREV (CONS 1 REVNO))
(SETQ EDATA (SUBST NEWREV OLDREV EDATA))
(ENTMOD EDATA)
(ENTUPD ENAME))
I've checked on my machine and both routines work as expected... I used empty DWG with only single block that correspond to your title block... I'll attach it...