I have about 200+ lines of code that really need to be in a macro.
Only two parms are being passed into the macro but the amount of code is
what I think is killing me.....
The error is:
PAGE 0001 COBOL II/iX HP31500A.04.21 [85] Copyright Hewlett-Packard CO.
1987
LINE # SEQ # COL ERROR SEV TEXT
----------------------------------------------------------------------------
--
11328 683200 12 390 Q COMPILER ERROR: UNIMPLEMENTED CASE 12350 in
PROCEDURE GET'MACRO - array MACROTEXT too small.
*** FATAL ERROR TABLE OVERFLOW ***
11328 683200 12 461 D DYNAMIC ARRAY ERROR, OUT OF SPACE.
1 ERROR(s), 1 QUESTIONABLE, 0 WARNING(s)
*** COMPILATION TERMINATED ***
procedure STACK_TRACE
DEBUG/iX C.25.06
HPDEBUG Intrinsic at: 244.001724dc stack_trace+$9c
PC=244.001724dc stack_trace+$9c
NM* 0) SP=4185e9f8 RP=244.00173334 abnormal_termination+$16c
NM 1) SP=4185e898 RP=244.00173994 error+$3ec
NM 2) SP=4185e7b8 RP=244.00173398 simple_error+$30
NM 3) SP=4185e4f8 RP=244.0013cce8 pp_warn+$c4
NM 4) SP=4185e4b0 RP=244.0013ee18 get_macro+$b4
NM 5) SP=4185e400 RP=244.0013e3e0 check_ppid+$44
NM 6) SP=4185b2d8 RP=244.001416d0 process_source+$300
NM 7) SP=4185b290 RP=244.001417e4 get_record+$68
NM 8) SP=4185b1c8 RP=244.001367e8 get_source_rec+$34
NM 9) SP=4185b190 RP=244.0013676c peek_source+$19c
NM a) SP=4185b0f0 RP=244.00132110 get_exp_source+$148
NM b) SP=4185b098 RP=244.00132ea8 do_pass_0+$d0
NM c) SP=4185af60 RP=244.001335ac ANSI74+$18c
NM d) SP=41854258 RP=244.00000000
(end of NM stack)
CHECKED SYNTAX ONLY.
CPU TIME = 0:00:05. WALL TIME = 0:01:03.
run COBOL.PUB.SYS,ANSI85;parm=7;info=""
Program terminated in an error state. (CIERR 976)
ERRORS IN COMPILE
setjcw jcw=fatal
Unless a CONTINUE is in effect, the remainder of the
current UDC will be flushed. (CIWARN 1723)
Sample of the code is:
Mainline calling the macro:
COPY FDBFHBLD OF VMACRO.
%LOADFDBFHB(FDB#,DETAIL#)
COPY FDBFHBL2 OF VMACRO.
%LOADFDBFHB2(FDB#,DETAIL#)
COPY FDBFHBL3 OF VMACRO.
%LOADFDBFHB3(FDB#,DETAIL#)
Sample code in the macro:
$CONTROL NOLIST
$PREPROCESSOR DELIMITER=~
$DEFINE %LOADFDBFHB1=
MOVE SPACES TO PAGE-005-FILE-!2-REC.
MOVE DB-!1-VA-LEFT TO WS-VAD-LEFT.
MOVE DB-!1-VA-RIGHT TO WS-VAD-RIGHT.
STRING "Virtual Addr (DEC): " DELIMITED BY SIZE
WS-VAD-LEFT DELIMITED BY SIZE
" " DELIMITED BY SIZE
WS-VAD-RIGHT DELIMITED BY SIZE
INTO PAGE-005-FILE-!2-REC
END-STRING.
MOVE WS-PAGE-NO-005 TO PAGE-005-PAGE-NO.
MOVE WS-LINE-NO-005 TO PAGE-005-LINE-NO.
COPY VMACRO0 OF VMACRO.
%WRITEPAGERECORD(005#,49#,3000-EDIT-ERR#)
COPY VMACROA OF VMACRO.
%PAGEINCR(005#,3000-EDIT-ERR#).
ADD 1 TO WS-ENTRIES-SELECTED.
INITIALIZE WS-UFIDS-TABLE.
MOVE DB-!1-VA-LEFT TO WS-UFIDS(1).
MOVE DB-!1-VA-RIGHT TO WS-UFIDS(2).
MOVE SPACES TO WS-UFIDS-HEX-TABLE
WS-VAD-LEFT-X
WS-VAD-RIGHT-X.
CALL "Convert_UFIDS_To_Hex" USING WS-UFIDS-TABLE,
WS-UFIDS-HEX-TABLE
END-CALL.
COMPUTE WS-SUB = FUNCTION LENGTH(WS-VAD-LEFT).
MOVE WS-SUB TO WS-SUB-A.
PERFORM VARYING WS-SUB FROM WS-SUB BY -1
UNTIL WS-SUB < 1
IF WS-UFIDS-HEX-X (1)(WS-SUB:1) NOT = SPACES THEN
MOVE WS-UFIDS-HEX-X (1)(WS-SUB:1)
TO WS-VAD-LEFT-X (WS-SUB-A:1)
SUBTRACT 1 FROM WS-SUB-A
END-IF
END-PERFORM.
COMPUTE WS-SUB = FUNCTION LENGTH(WS-VAD-RIGHT).
MOVE WS-SUB TO WS-SUB-A.
PERFORM VARYING WS-SUB FROM WS-SUB BY -1
UNTIL WS-SUB < 1
IF WS-UFIDS-HEX-X (2)(WS-SUB:1) NOT = SPACES THEN
MOVE WS-UFIDS-HEX-X (2)(WS-SUB:1)
TO WS-VAD-RIGHT-X (WS-SUB-A:1)
SUBTRACT 1 FROM WS-SUB-A
END-IF
END-PERFORM.
MOVE SPACES TO PAGE-005-FILE-!2-REC.
STRING "Virtual Addr (HEX): " DELIMITED BY SIZE
WS-VAD-LEFT-X DELIMITED BY SIZE
" " DELIMITED BY SIZE
WS-VAD-RIGHT-X DELIMITED BY SIZE
INTO PAGE-005-FILE-!2-REC
END-STRING.
MOVE WS-PAGE-NO-005 TO PAGE-005-PAGE-NO.
MOVE WS-LINE-NO-005 TO PAGE-005-LINE-NO.
COPY VMACRO0 OF VMACRO.
%WRITEPAGERECORD(005#,49#,3000-EDIT-ERR#)
COPY VMACROA OF VMACRO.
%PAGEINCR(005#,3000-EDIT-ERR#).
ADD 1 TO WS-ENTRIES-SELECTED.
MOVE SPACES TO PAGE-005-FILE-!2-REC.
MOVE WS-PAGE-NO-005 TO PAGE-005-PAGE-NO.
MOVE WS-LINE-NO-005 TO PAGE-005-LINE-NO.
COPY VMACRO0 OF VMACRO.
%WRITEPAGERECORD(005#,49#,3000-EDIT-ERR#)
COPY VMACROA OF VMACRO.
%PAGEINCR(005#,3000-EDIT-ERR#).
ADD 1 TO WS-ENTRIES-SELECTED.
MOVE SPACES TO PAGE-005-FILE-!2-REC.
MOVE DB-!1-REC-SIZE TO WS-REC-SIZE-DISP.
STRING "Record Size(Bytes): " DELIMITED BY SIZE
WS-REC-SIZE-DISP DELIMITED BY SIZE
INTO PAGE-005-FILE-!2-REC
END-STRING.
MOVE WS-PAGE-NO-005 TO PAGE-005-PAGE-NO.
MOVE WS-LINE-NO-005 TO PAGE-005-LINE-NO.
COPY VMACRO0 OF VMACRO.
%WRITEPAGERECORD(005#,49#,3000-EDIT-ERR#)
COPY VMACROA OF VMACRO.
%PAGEINCR(005#,3000-EDIT-ERR#).
ADD 1 TO WS-ENTRIES-SELECTED.
etc etc......
Anyone got suggestions how to fix this problem and make the macro work?
TIA,
Brian.
* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *
|