1 /*****************************************************************************
2
3 ExeU()
4
5 This function performs a U command.
6
7 nUq Put number n into Q-register q
8 *****************************************************************************/
9
10 #include "zport.h" /* define portability identifiers */
11 #include "tecoc.h" /* define general identifiers */
12 #include "defext.h" /* define external global variables */
13 #include "deferr.h" /* define identifiers for error messages */
14
ExeU()15 DEFAULT ExeU() /* execute U command */
16 {
17 DBGFEN(1,"ExeU",NULL);
18 if (EStTop == EStBot) { /* if no numeric argument */
19 ErrMsg(ERR_NAU);
20 DBGFEX(1,DbgFNm,"FAILURE, no arg before U");
21 return FAILURE;
22 }
23
24 if (GetNmA() == FAILURE) { /* get numeric argument */
25 DBGFEX(1,DbgFNm,"FAILURE, GetNmA() failed");
26 return FAILURE;
27 }
28 if (IncCBP() == FAILURE) { /* increment to Q-reg name */
29 DBGFEX(1,DbgFNm,"FAILURE, IncCBp() failed.");
30 return FAILURE;
31 }
32 if (FindQR() == FAILURE) {
33 DBGFEX(1,DbgFNm,"FAILURE, FindQR() failed");
34 return FAILURE;
35 }
36
37 QR->Number = NArgmt;
38 if (CmdMod & MARGIS) { /* if m,nUq */
39 DBGFEX(1,DbgFNm,"PushEx()");
40 return PushEx(MArgmt, OPERAND);
41 }
42
43 CmdMod = '\0'; /* clear modifiers flags */
44
45 DBGFEX(1,DbgFNm,"SUCCESS");
46 return SUCCESS;
47 }
48