|
Hi Here's the situation...... I have a piece of old MI vendor code (see below) Thing to note about this are 1. It has no semicolons (I had to add them) 2. When I add the semicolons (as I have donw with other MI code and it works ) it compiles but doesn't run I get MCH0601 Space offset X'4040A24F' or teraspace offset X'0000000000000000' is outside current limit for object PATHIX16S2DCOLFORD 283123. Function check. MCH0601 unmonitored by MDOC at statement *N, instruction X'0016'. 3. This program is called via a link to a special file and is used to put records on a screen. It was working until we hit 1700 lines of help text. My intent here is just toi increase the size of 1700 to say 5000 and leave it for another 10 years 4. The original compiler for this is the 'PUMPKIN V1R1M0' version... Is this the problem? Anyone have a copy of this Can anyone see anything wrong here ?? Do you need more info Thanks in advance Dave /*********************************************************************/ /* HELP TEXT EDITOR WORK SPACE HANDLER */ /*********************************************************************/ ENTRY *(EXTPARM) EXT; DCL SPCPTR XRQS-SPP PARM; DCL SPCPTR XSTS-SPP PARM; DCL SPCPTR XERRCODE-SPP PARM; DCL SPCPTR XIOAREA-SPP PARM; DCL SPCPTR XCTL-SPP PARM; DCL SPCPTR XFIRST-SPP PARM; DCL SPCPTR XCURRENT-SPP PARM; DCL SPCPTR XSPCNAME-SPP PARM; DCL SPCPTR XEOF-SPP PARM; DCL OL EXTPARM(XRQS-SPP,XSTS-SPP,XERRCODE-SPP,XIOAREA-SPP, XCTL-SPP,XFIRST-SPP,XCURRENT-SPP,XSPCNAME-SPP, XEOF-SPP) PARM EXT; DCL DD XRQS CHAR(1) BAS(XRQS-SPP); DCL DD XSTS CHAR(1) BAS(XSTS-SPP); DCL DD XERRCODE ZND(5,0) BAS(XERRCODE-SPP); DCL DD XIOAREA CHAR(67) BAS(XIOAREA-SPP); DCL DD XCTL CHAR(1) BAS(XCTL-SPP); DCL DD XFIRST PKD(15,0) BAS(XFIRST-SPP); DCL DD XCURRENT PKD(15,0) BAS(XCURRENT-SPP); DCL DD XSPCNAME CHAR(30) BAS(XSPCNAME-SPP); DCL DD XEOF CHAR(1) BAS(XEOF-SPP); /********************************************************************/ /* START */ /********************************************************************/ CMPBLA(B) XRQS,'O'/EQ(OPEN); CMPBLA(B) XRQS,'C'/EQ(CLOSE); CMPBLA(B) XRQS,'R'/EQ(READ); CMPBLA(B) XRQS,'W'/EQ(WRITE); CPYBLA XSTS,'2'; CPYNV XERRCODE,90001;/* INVALID REQUEST */ RTX *; /********************************************************************/ /* OPEN FILE: RESOLVE WROK SPACE (CREATE IF NOT EXIST) */ /********************************************************************/ DCL EXCM EXCM1 EXCID(H'2201') BP(CRTSPACE) SKP; OPEN: CMPBLA(B) XCTL,' '/NEQ(OPENEND); RSLVSP CTX-SYP,CTX-ID,*,X'FF00'; CPYBLA WRKSPC-NAME,XSPCNAME; MODEXCPD EXCM1,*ENABLE,X'01'; RSLVSP WRKSPC-SYP,WRKSPC-ID,CTX-SYP,X'FF00'; MODEXCPD EXCM1,*DISABLE,X'01'; SETSPPFP WRKSPC-SPP,WRKSPC-SYP; CPYNV XFIRST,WRKSPC-FIRST; CPYNV XCURRENT,0; CPYBLA XSTS,'0'; CPYNV XERRCODE,0; OPENEND: RTX *; CRTSPACE: MODEXCPD EXCM1,*DISABLE,X'01'; CPYBLA SPCTMPL-NAME,XSPCNAME; CRTS WRKSPC-SYP,SPCTMPL-SPP; SETSPPFP WRKSPC-SPP,WRKSPC-SYP; CPYNV WRKSPC-FIRST,0; CPYNV WRKSPC-COUNT,0; CPYNV XFIRST,0; CPYNV XCURRENT,0; CPYBLA XSTS,'0'; CPYNV XERRCODE,0; RTX *; /********************************************************************/ /* CLOSE FILE: DESTROY SPACE (IF REQUESTED) */ /********************************************************************/ CLOSE: CMPBLA(B) XCTL,' '/NEQ(CLOSEEND); DESS WRKSPC-SYP; DEACTPG *; CLOSEEND: RTX *; /********************************************************************/ /* READ FILE */ /********************************************************************/ DCL DD CURRENT BIN(4) AUTO; DCL DD OFFSET BIN(4) AUTO; DCL DD FREE CHAR(8) AUTO INIT(X'FFFFFFFFFFFFFFFF'); READ: CPYNV CURRENT,XCURRENT; CPYBWP RECORD-SPP,WRKSPC-SPP; SETSPPO RECORD-SPP,CURRENT; CMPBLA(B) XCTL,'P'/EQ(READPREV); CMPBLA(B) XCTL,'N'/EQ(READNEXT); CMPBLA(B) XCTL,'C'/EQ(READOK); CMPBLA(B) XCTL,'E'/EQ(READEND); CPYBLA XSTS,'2'; CPYNV XERRCODE,90002; /* INVALID READ REQUEST */ RTX *; READPREV: CMPNV(B) CURRENT,0/EQ(EOF); CMPNV(B) RECORD-PREV,0/EQ(EOF); CPYNV CURRENT,RECORD-PREV; SETSPPO RECORD-SPP,CURRENT; B READOK; READNEXT: CMPNV(B) WRKSPC-COUNT,0/EQ(ADDRECORD); CMPNV(B) RECORD-NEXT,0/EQ(ADDRECORD); CMPNV(B) CURRENT,0/HI(TAG1); CPYNV CURRENT,WRKSPC-FIRST; B TAG2; TAG1: CPYNV CURRENT,RECORD-NEXT; TAG2: SETSPPO RECORD-SPP,CURRENT; B READOK; ADDRECORD: CMPNV(B) WRKSPC-COUNT,1700/EQ(EOF); CPYNV PREV,0; CPYNV NEXT,0; CMPNV(B) CURRENT,0/EQ(END51); CPYNV PREV,CURRENT; CPYNV NEXT,RECORD-NEXT; END51: /* NEW RECORD */ SEARCH CURRENT,WRKSPC-PTR,FREE,1; MULT(S) CURRENT,75; SUBN(S) CURRENT,59; SETSPPO RECORD-SPP,CURRENT; CPYNV RECORD-PREV,PREV; CPYNV RECORD-NEXT,NEXT; CPYBLAP RECORD-DATA,' ',' '; CPYNV WRKSPC-LAST,CURRENT; ADDN(S) WRKSPC-COUNT,1; /* PREVIOUS RECORD */ CMPNV(B) RECORD-PREV,0/EQ(END52); SETSPPO RECORD-SPP,RECORD-PREV; CPYNV RECORD-NEXT,CURRENT; SETSPPO RECORD-SPP,CURRENT; B END53; END52: CPYNV WRKSPC-FIRST,CURRENT; END53: B READOK; READEND: CMPNV(B) CURRENT,0/HI(CONT1); CMPNV(B) WRKSPC-FIRST,0/EQ(EOF); CPYNV CURRENT,WRKSPC-FIRST; B CONT2; CONT1: CMPNV(B) RECORD-NEXT,0/EQ(EOF); CPYNV CURRENT,RECORD-NEXT; CONT2: SETSPPO RECORD-SPP,CURRENT; CPYNV OFFSET,CURRENT; CF: CMPBLAP(B) RECORD-DATA,' ',' '/NEQ(ENDREADEND); CMPNV(B) RECORD-NEXT,0/EQ(EOF); CPYNV OFFSET,RECORD-NEXT; SETSPPO RECORD-SPP,OFFSET; B CF; ENDREADEND:SETSPPO RECORD-SPP,CURRENT; READOK: CPYBLA XIOAREA,RECORD-DATA; CPYNV XFIRST,WRKSPC-FIRST; CPYNV XCURRENT,CURRENT; CPYBLA XSTS,'0'; CPYNV XERRCODE,0; RTX *; EOF: CPYBLA XEOF,'1'; CPYBLA XSTS,'0'; CPYNV XERRCODE,0; RTX *; /********************************************************************/ /* WRITE FILE */ /********************************************************************/ DCL DD NEXT BIN(4) AUTO; DCL DD PREV BIN(4) AUTO; DCL DD BUFFER CHAR(75) AUTO; WRITE: CPYNV CURRENT,XCURRENT; CPYBWP RECORD-SPP,WRKSPC-SPP; SETSPPO RECORD-SPP,CURRENT; CMPBLA(B) XCTL,'B'/EQ(ADDBEFORE); CMPBLA(B) XCTL,'A'/EQ(ADDAFTER); CMPBLA(B) XCTL,'U'/EQ(UPDATE); CMPBLA(B) XCTL,'D'/EQ(DELETE); CPYBLA XSTS,'2'; CPYNV XERRCODE,90003; /* INVALID WRITE REQUEST */ RTX *; ADDBEFORE: CPYNV PREV,0; CPYNV NEXT,0; CMPNV(B) CURRENT,0/EQ(END01); CPYNV PREV,RECORD-PREV; CPYNV NEXT,CURRENT; END01: /* NEW RECORD */ CMPNV(B) WRKSPC-COUNT,1700/EQ(END02); /* SPACE FULL */ SEARCH CURRENT,WRKSPC-PTR,FREE,1; MULT(S) CURRENT,75; SUBN(S) CURRENT,59; SETSPPO RECORD-SPP,CURRENT; CPYNV RECORD-PREV,PREV; CPYNV RECORD-NEXT,NEXT; CPYBLA RECORD-DATA,XIOAREA; ADDN(S) WRKSPC-COUNT,1; B END03; END02: CPYNV CURRENT,WRKSPC-LAST; SETSPPO RECORD-SPP,CURRENT; CPYNV WRKSPC-LAST,RECORD-PREV; SETSPPO RECORD-SPP,RECORD-PREV; CPYNV RECORD-NEXT,0; SETSPPO RECORD-SPP,CURRENT; CPYNV RECORD-PREV,PREV; CPYNV RECORD-NEXT,NEXT; CPYBLA RECORD-DATA,XIOAREA; END03: /* PREVIOUS RECORD */ CMPNV(B) RECORD-PREV,0/EQ(END04); SETSPPO RECORD-SPP,RECORD-PREV; CPYNV RECORD-NEXT,CURRENT; SETSPPO RECORD-SPP,CURRENT; B END05; END04: CPYNV WRKSPC-FIRST,CURRENT; END05: /* NEXT RECORD */ CMPNV(B) RECORD-NEXT,0/EQ(END06); SETSPPO RECORD-SPP,RECORD-NEXT; CPYNV RECORD-PREV,CURRENT; SETSPPO RECORD-SPP,CURRENT; B END07; END06: CPYNV WRKSPC-LAST,CURRENT; END07: CPYNV XFIRST,WRKSPC-FIRST; CPYNV XCURRENT,CURRENT; CPYBLA XSTS,'0'; CPYNV XERRCODE,0; RTX *; ADDAFTER: CPYNV PREV,0; CPYNV NEXT,WRKSPC-FIRST; CMPNV(B) CURRENT,0/EQ(END21); CPYNV PREV,CURRENT; CPYNV NEXT,RECORD-NEXT; END21: /* NEW RECORD */ CMPNV(B) WRKSPC-COUNT,1700/EQ(END22); /* SPACE FULL */ SEARCH CURRENT,WRKSPC-PTR,FREE,1; MULT(S) CURRENT,75; SUBN(S) CURRENT,59; SETSPPO RECORD-SPP,CURRENT; CPYNV RECORD-PREV,PREV; CPYNV RECORD-NEXT,NEXT; CPYBLA RECORD-DATA,XIOAREA; ADDN(S) WRKSPC-COUNT,1; B END23; END22: CPYNV CURRENT,WRKSPC-LAST; SETSPPO RECORD-SPP,CURRENT; CPYNV WRKSPC-LAST,RECORD-PREV; SETSPPO RECORD-SPP,RECORD-PREV; CPYNV RECORD-NEXT,0; SETSPPO RECORD-SPP,CURRENT; CPYNV RECORD-PREV,PREV; CPYNV RECORD-NEXT,NEXT; CPYBLA RECORD-DATA,XIOAREA; END23: /* PREVIOUS RECORD */ CMPNV(B) RECORD-PREV,0/EQ(END24); SETSPPO RECORD-SPP,RECORD-PREV; CPYNV RECORD-NEXT,CURRENT; SETSPPO RECORD-SPP,CURRENT; B END25; END24: CPYNV WRKSPC-FIRST,CURRENT; END25: /* NEXT RECORD */ CMPNV(B) RECORD-NEXT,0/EQ(END26); SETSPPO RECORD-SPP,RECORD-NEXT; CPYNV RECORD-PREV,CURRENT; SETSPPO RECORD-SPP,CURRENT; B END27; END26: CPYNV WRKSPC-LAST,CURRENT; END27: CPYNV XFIRST,WRKSPC-FIRST; CPYNV XCURRENT,CURRENT; CPYBLA XSTS,'0'; CPYNV XERRCODE,0; RTX *; UPDATE: CPYBLA RECORD-DATA,XIOAREA; CPYNV XFIRST,WRKSPC-FIRST; CPYNV XCURRENT,CURRENT; CPYBLA XSTS,'0'; CPYNV XERRCODE,0; RTX *; DELETE: CPYNV PREV,RECORD-PREV; CPYNV NEXT,RECORD-NEXT; CMPNV(B) PREV,0/EQ(END41); SETSPPO RECORD-SPP,PREV; CPYNV RECORD-NEXT,NEXT; B END42; END41: CPYNV WRKSPC-FIRST,NEXT; END42: CMPNV(B) NEXT,0/EQ(END43); SETSPPO RECORD-SPP,NEXT; CPYNV RECORD-PREV,PREV; B END44; END43: CPYNV WRKSPC-LAST,PREV; END44: SUBN(S) WRKSPC-COUNT,1; SETSPPO RECORD-SPP,CURRENT; CPYBLAP RECORD-BUFF,X'FFFFFFFFFFFFFFFF',X'00'; CPYNV CURRENT,NEXT; SETSPPO RECORD-SPP,CURRENT; CPYNV XFIRST,WRKSPC-FIRST; CPYNV XCURRENT,CURRENT; CPYBLA XSTS,'0'; CPYNV XERRCODE,0; RTX *; /********************************************************************/ DCL SYSPTR WRKSPC-SYP; DCL SPCPTR WRKSPC-SPP; DCL DD WRKSPC-FIRST BIN(4) BAS(WRKSPC-SPP) POS(1); /* FIRST LINE */ DCL DD WRKSPC-LAST BIN(4) BAS(WRKSPC-SPP) POS(5); /* LAST LINE */ DCL DD WRKSPC-COUNT BIN(4) BAS(WRKSPC-SPP) POS(13); /* LINE COUNT */ DCL DD WRKSPC-DUMMY CHAR(1) BAS(WRKSPC-SPP) POS(17); DCL DD WRKSPC-PTR(1700) CHAR(8) DEF(WRKSPC-DUMMY) AEO(75); DCL SPCPTR RECORD-SPP AUTO; DCL DD RECORD-PREV BIN(4) BAS(RECORD-SPP) POS(1); /* PREV LINE */ DCL DD RECORD-NEXT BIN(4) BAS(RECORD-SPP) POS(5); /* NEXT LINE */ DCL DD RECORD-DATA CHAR(67) BAS(RECORD-SPP) POS(9); /* DATA */ DCL DD RECORD-BUFF CHAR(75) BAS(RECORD-SPP) POS(1); DCL SPCPTR SPCTMPL-SPP AUTO INIT(SPCTMPL); DCL DD SPCTMPL CHAR(160) AUTO; DCL DD * BIN(4) DEF(SPCTMPL) POS(1) INIT(160); DCL DD * CHAR(2) DEF(SPCTMPL) POS(9) INIT(X'19EE'); DCL DD SPCTMPL-NAME CHAR(30) DEF(SPCTMPL) POS(11); DCL DD * CHAR(4) DEF(SPCTMPL) POS(41) INIT(X'E2000000'); DCL DD * CHAR(4) DEF(SPCTMPL) POS(45) INIT(X'00000000'); DCL DD * BIN(4) DEF(SPCTMPL) POS(49) INIT(127516); DCL DD * CHAR(1) DEF(SPCTMPL) POS(53) INIT(X'FF'); DCL DD * CHAR(4) DEF(SPCTMPL) POS(54) INIT(X'03000000'); DCL DD * CHAR(1) DEF(SPCTMPL) POS(58) INIT(X'00'); DCL DD * CHAR(2) DEF(SPCTMPL) POS(59) INIT(X'FF00'); DCL SYSPTR CTX-SYP DEF(SPCTMPL) POS(65); DCL DD WRKSPC-ID CHAR(34) AUTO; DCL DD * CHAR(2) DEF(WRKSPC-ID) POS(1) INIT(X'19EE'); DCL DD WRKSPC-NAME CHAR(30) DEF(WRKSPC-ID) POS(3); DCL DD * CHAR(2) DEF(WRKSPC-ID) POS(33) INIT(X'0000'); DCL DD CTX-ID CHAR(34) AUTO; DCL DD * CHAR(2) DEF(CTX-ID) POS(1) INIT(X'0401'); DCL DD * CHAR(30) DEF(CTX-ID) POS(3) INIT('QRECOVERY'); DCL DD * CHAR(2) DEF(CTX-ID) POS(33) INIT(X'0000'); DCL CON *ENABLE CHAR(2) INIT(X'A000'); DCL CON *DISABLE CHAR(2) INIT(X'2000'); PEND;
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.