DSC TITLE 'DMMDSC (IPCS) VM/370 - RELEASE 6' 00001000 * 00002000 * MODULE NAME: 00003000 * DUMPSCAN 00004000 * 00005000 * FUNCTION: 00006000 * PROVIDE A METHOD OF EXAMINING THE CMS FORMAT 00007000 * CP DUMPS CREATED BY VMFDUMP. 00008000 * 00009000 * ATTRIBUTES: 00010000 * REUSABLE 00011000 * NON-REENTRANT 00012000 * 00013000 * ENTRY POINTS: 00014000 * DUMPSCAN 00015000 * INPUT READ IN AREA 00016000 * 00017000 * ENTRY CONDITIONS: 00018000 * NONE 00019000 * 00020000 * EXIT CONDITIONS: 00021000 * RETURN CODE IN R15 00022000 * 0 - USER 'HX', 'QUIT' OR END. 00023000 * 8 - ERROR PROCESSING THE DUMP 00024000 * 00025000 * CALLS TO OTHER ROUTINES: 00026000 * DMMFEX FULL SCREEN WRITE FROM DUMP 00027000 * DMMFED DISPLAY AREAS OF THE DUMP 00028000 * DMMLOC LOCATE STRING REQUEST 00029000 * DMMSCR FOR SCROLL FUNCTION 00030000 * DMMREG TO DISPLAY REGISTERS 00031000 * DMMVMB TO DISPLAY VMBLOKS 00032000 * DMMMOD TO FIND MODULES AND RESOLVE ADDRESSES 00033000 * DMMTRC DISPLAY TRACE TABLE ENTRIES 00034000 * DMMLOC TO FIND STRINGS IN 'LOCATE STRING FROM TO' 00035000 * EXTERNAL REFERENCES: 00036000 * SCRNAREA DISPLAY AREA 00037000 * HEXAD LAST DISPLAYED ADDRESS IN HEX 00038000 * 00039000 * TABLES/WORKAREAS: 00040000 * PLIST THE TOKENIZED INPUT TO PASS TO SUBROUTINES 00041000 * 00042000 * REGISTER USAGE: 00043000 * R15 ADDRESSES OF EXTERNAL ROUTINES 00044000 * R14 RETURNS FROM EXTERNAL ROUTINES 00045000 * R13 SAVE AREA ADDRESS 00046000 * R12,R11 BASES @V4075A2 00047000 * R10 INTERNAL LINK @V4075A2 00048000 * R9-R2 WORK REGISTERS 00049000 * R2 PASSES ADDRESS OF PLIST TO SUBROUTINES 00050000 * 00051000 * NOTES: 00052000 * 00053000 * OPERATION: 00054000 * DUMPSCAN IS MOST EFFECTIVE ON A GRAPHICS TYPE 00055000 * TERMINAL. HOWEVER IT DOES TEST TERMINAL TYPE AND 00056000 * PROVIDES A SLIGHTLY REDUCED FUNCTION TO A 2741. 00057000 * USER IS FIRST OFFERED ASSISTANCE. THEN HE IS ASKED 00058000 * FOR THE DUMP IDENTIFICATION. THIS IS CHECKED FOR 00059000 * VALIDITY, AND FSSTATE ISSUED AGAINST THE DUMP. 00060000 * IF ALL IS WELL '*** READY ***' PROMPTS USER TO 00061000 * ENTER HIS COMMAND. THE COMMAND IS INTERROGATED, 00062000 * VALIDITY CHECKED AND TOKENIZED INTO THE PLIST. 00063000 * CONTROL IS PASSED TO THE APPROPRIATE SUBROUTINE, 00064000 * ALONG WITH THE PLIST ADDRESS IF REQUIRED. 00065000 * ON RETURN, THE RETURN CODE IS CHECKED. 00066000 * 0 OR 4 CAUSE A RETURN TO THE READY MESSAGE, 00067000 * 8 CAUSES RETURN TO CMS. 00068000 * 00069000 * ERROR MESSAGES: 00070000 * DMMDSC719I - ERROR IN FSSTATE 00071000 * 00072000 * * * * * * * *------- -------- -------- -------- ------* 00073000 EJECT 00074000 DMMDSC CSECT @VA04250 00075000 ENTRY TYPEFLAG TYPE OF TERMINAL @VA04250 00076000 ENTRY CONSOLE ADDRESS OF VIRT CONSOLE @VA04250 00077000 ENTRY CMDINFO HEADER LINE @VA04250 00078000 ENTRY DUMPFSCB FSCB OF DUMP @VA04250 00079000 ENTRY STRINGAD SEARCH ARGUMENT FOR LOCATE @V4075A2 00080000 ENTRY STRINGLN LENGTH OF ARG @V4075A2 00081000 ENTRY INPUT READ IN AREA @VA04250 00082000 ENTRY SHARECON COMMON CONSTANTS @V4075A2 00083000 ENTRY INLENGTH LENGTH OF INPUT LINE @VA04250 00084000 ENTRY PRINTONE ONE-SHOT PRINT FLAG @V4075A2 00085000 ENTRY PRINTSW @V4075A2 00086000 EXTRN DMMDIR SCREEN WRITE @VA04250 00087000 EXTRN DMMFED DISPLAY @VA04250 00088000 EXTRN DMMFEX DISPLAY HEXLOC @VA04250 00089000 EXTRN DMMGET FETCH DUMP TO CORE @VA04250 00090000 EXTRN DMMHEX UNTRANSLATE @VA04250 00091000 EXTRN DMMINT TRANSLATE @VA04250 00092000 EXTRN DMMIOB VIO/RIO @VA04250 00093000 EXTRN DMMLOC LOCATE @VA04250 00094000 EXTRN DMMMAP ADD MAP TO DUMP @V4075A2 00095000 EXTRN DMMMOD MODULE/ADDRESS SEARCH @VA04250 00096000 EXTRN DMMREG REGISTERS @VA04250 00097000 EXTRN DMMSCR SCROLL @VA04250 00098000 EXTRN DMMTRC TRACE @VA04250 00099000 EXTRN DMMVMB VMBLOK @VA04250 00100000 EXTRN SCRNAREA DISPLAY AREA @VA04250 00101000 EXTRN HEXAD LAST ADDRESS DISPLAYED @VA04250 00102000 EXTRN ISW ITEM TABLE READ @VA04250 00103000 EXTRN MAPREDSW LOAD MAP READ @VA04250 00104000 EXTRN RECORDNO LAST RECORD READ @VA04250 00105000 EXTRN PREBUFAD ADDRESS OF LOC BUFFER @V4075A2 00106000 EXTRN BOUND INCREMENT PARM @V4075A2 00107000 STM R14,R12,SAVEDISP(R13) SAVE CALLERS REGS @VA04250 00108000 LR R12,R15 ADDRESSABILITY @VA04250 00109000 LA R11,1 SET UP SECOND BASE REG @V4075A2 00110000 SLL R11,12 SET TO 4096 @V4075A2 00111000 AR R11,R12 AND ADD THIS BASE @V4075A2 00112000 USING DMMDSC,R12,R11 BASE REG ASSIGNMENTS @V4075A2 00113000 ST R13,SAVEBACK CALLERS SAVE AREA @VA04250 00114000 B EYECATCH BYPASS EYECATCHER @VA04250 00115000 DS 0D ALIGN @VA04250 00116000 DC CL8'DMMDSC' EYECATCHER @VA04250 00117000 RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00118000 EYECATCH LA R13,SAVEAREA DSC SAVEAREA @VA04250 00119000 XC RETCODE,RETCODE CLEAR RETURN CODE @VA04250 00120000 * * * * * * * *------- -------- -------- -------- ------* 00121000 * * * * * * * * FIND OUT IF THE TERMINAL IS A GRAPHIC 00122000 * * * * * * * * DEVICE OR A TYPEWRITER TYPE. 00123000 * * * * * * * *------- -------- -------- -------- ------* 00124000 LA R6,NULL SET UP TO TEST TERM TYPE @VA04250 00125000 BCTR R6,R0 FILL IT WITH 'FF' @VA04250 00126000 DC X'83670024' CONS DIAGNOSE @VA04250 00127000 ST R6,CONSOLE ADDRESS OF VIRTUAL CONSOLE @VA04250 00128000 ST R8,TYPESAVE SAVE REAL DEVICE TYPE @VA04250 00129000 TM TYPESAVE,CLASTERM IS IT A 2741 TYPE @VA04250 00130000 BNO GETDUMP NO - ASSUME GRAPHIC DEVICE @VA04250 00131000 TM TYPEREM,HIBYTEST IS IT A DISPLAY TEMINNAL? @VA09785 00132150 BNZ SETYPER NO-SET 2741 @VA09785 00132300 TM TYPEREM,LOBYTEST INSURE 3275,3276,3277 OR 3278 @VA09785 00132450 BNZ GETDUMP IT IS A DISPLAY TERMINAL--BRANCH @VA09785 00132600 SETYPER EQU * @VA09785 00132750 MVI TYPEFLAG,TYPER NOT 3270 - SET TYPEWRITER FLAG @VA04250 00134000 EJECT 00135000 * * * * * * * *------- -------- -------- -------- ------* 00136000 * * * * * * * * NOW START COMMUNICATION 00137000 * * * * * * * * FIND OUT IF HE NEEDS HELP 00138000 * * * * * * * *------- -------- -------- -------- ------* 00139000 GETDUMP BAL R10,CLEAR CLEAR SCREEN @VA04250 00140000 MVI PAGESW,PAGE1 RESET TO TYPE INFORMATION PAGE1 HRC001DM 00141990 REREAD DS 0H HRC001DM 00142980 LA R10,DUMPFSCB GET ADDRESS OF ANY OPEN DUMPFSCB HRC001DM 00143970 FSCLOSE FSCB=(R10) AND CLOSE IT HRC001DM 00144960 ENTER DS 0H HRC001DM 00145950 LA R8,EMSG7011 ADDRESS HRC001DM 00146940 LA R9,L'EMSG7011 AND LENGTH HRC001DM 00147930 BAL R10,WRTERM WRITE FIRST MESSAGE HRC001DM 00148920 LA R8,EMSG7012 ADDRESS HRC001DM 00149910 LA R9,L'EMSG7012 AND LENGTH HRC001DM 00150900 BAL R10,WRTERM WRITE FIRST MESSAGE HRC001DM 00151890 LA R8,EMSG7013 ADDRESS HRC001DM 00152880 LA R9,L'EMSG7013 AND LENGTH HRC001DM 00153870 BAL R10,WRTERM WRITE FIRST MESSAGE HRC001DM 00154860 LA R8,EMSG7014 ADDRESS HRC001DM 00155850 LA R9,L'EMSG7014 AND LENGTH HRC001DM 00156840 BAL R10,WRTERM WRITE FIRST MESSAGE HRC001DM 00157830 LA R8,INPUT ADDRESS @VA04250 00161000 BAL R10,RDTERM READ IT IN @VA04250 00162000 LTR R0,R0 NULL LINE?? @VA04250 00163000 BZ ENTER DONT LET HIM AWAY WITH THAT HRC001DM 00164490 LR R2,R0 GET INLINE LENGTH @VA04250 00165000 BAL R10,INCHECK CHECK 'HX' @V4075A2 00166000 BAL R10,TOKEN TOKENIZE INPUT LINE @V4075A2 00167000 * * * * * * * *------- -------- -------- -------- ------* 00168000 * * * * * * * * NOW SLOT THE NUMBER ONTO THE END OF THE 00169000 * * * * * * * * DUMP 'PRB' NAME, AND GET THE MODE. 00170000 * * * * * * * *------- -------- -------- -------- ------* 00171000 LA R2,L'PLIST1-THREEBYT MAX ALLOWED BYTES OF INPUT @VA04250 00172000 LA R3,PLIST+VDEND END OF VALID DATA IN PLIST @VA04250 00173000 LA R4,DUMPFSCB+FNEND END OF FILE NAME IN PLIST @VA04250 00174000 MVC DUMPFSCB+FSCBDNUM(L'ZEROS),ZEROS SET DUMP NO. 0 @VA04250 00175000 COMP CLI 0(R3),BLANK BLANK? @VA04250 00176000 BE BUMPER YES - NO MOVE @VA04250 00177000 MVC 0(CHARLEN,R4),0(R3) MOVE A CHARACTER @VA04250 00178000 BCTR R4,R0 AND FSCB PTR @VA04250 00179000 BUMPER BCTR R3,R0 DECREMENT PLIST PTR @VA04250 00180000 BCT R2,COMP AND TRY AGAIN @VA04250 00181000 CLC PLIST2,FENCE END OF LIST - NO MODE? @VA04250 00182000 BE STATE GO SEE IF THERE REALLY IS A DUM @VA04250 00183000 MVC DUMPFSCB+FM(CHARLEN),PLIST2 PLUG THE MODE @VA04250 00184000 * * * * * * * *------- -------- -------- -------- ------* 00185000 * * * * * * * * NOW SEE IF THE DUMP EXISTS 00186000 * * * * * * * *------- -------- -------- -------- ------* 00187000 STATE FSSTATE FSCB=DUMPFSCB,ERROR=STATERR @VA04250 00188000 L R2,ISWADD ITEM TABLE SW @VA04250 00189000 MVI 0(R2),NOTRED TURN IT OFF FOR THE NEW DUMP @VA04250 00190000 L R2,MAPRSADD LOAD MAP READ @VA04250 00191000 MVI 0(R2),NOTRED TURN IT OFF TOO @VA04250 00192000 L R2,RECNOADD ADDRESS OF LAST RECORD READ @VA04250 00193000 LA R3,NULL SET UP TO SET IT TO 'FF' @VA04250 00194000 BCTR R3,R0 SET TO FFFFFFFFF @VA04250 00195000 ST R3,0(R2) PLUG IN LAST REC READ @VA04250 00196000 L R2,HEXADADD ADDRESS OF SCROLL ADDRESS @VA04250 00197000 ST R3,0(R2) SET TO FOXES - NEW DUMP @VA04250 00198000 * * * * * * * *------- -------- -------- -------- ------* 00199000 * * * * * * * * WRITE THE READY MESSAGE 00200000 * * * * * * * *------- -------- -------- -------- ------* 00201000 REREADY CLI TYPEFLAG,TYPER TYPER? @VA04250 00202000 BNE GRAPHITE NO - SCREEN @VA04250 00203000 LA R8,SHORTRDY ADDRESS @VA04250 00204000 LA R9,L'SHORTRDY AND LENGTH @VA04250 00205000 BAL R10,WRTERM WRITE '*R' _ SHORT READY - 2741 @VA04250 00206000 B READY GO READ IN LINE @VA04250 00207000 GRAPHITE LA R8,READYMSG ADDRESS @VA04250 00208000 LA R9,L'READYMSG AND LENGTH @VA04250 00209000 BAL R10,WRTERM WRITE '*** READY ***' TO SCREEN @VA04250 00210000 B READY GO TO READ IN @VA04250 00211000 EJECT 00212000 * * * * * * * *------- -------- -------- -------- ------* 00213000 * * * * * * * THIS SECTION READS THE LINE ENTERED 00214000 * * * * * * * AT THE CONSOLE, AND PASSES CONTROL 00215000 * * * * * * * TO THE APPROPRIATE ROUTINE. 00216000 * * * * * * * *-----------------------------------------* 00217000 READY MVC INSAVE,BLANKOUT CLEAR SAVE AREA @VA04830 00218000 MVC INSAVE,INPUT SAVE LAST INPUT LINE @VA04250 00219000 MVC OLDINLEN,INLENGTH SAVE LAST INPUT LENGTH @VA04250 00220000 CLI PRINTONE,TURNOFF PRINT ON FOR A ONE-SHOT DEAL? @V4075A2 00221000 BE READIN NO - DONT CHANGE ANYTHING @V4075A2 00222000 MVI PRINTONE,TURNOFF YES - TURN OFF ONE SHOT FLAG @V4075A2 00223000 MVI PRINTSW,TURNOFF AND TURN PRINT OFF @V4075A2 00224000 READIN LA R8,INPUT ADDRESS OF BUFFER @V4075A2 00225000 BAL R10,RDTERM READ IT @VA04250 00226000 LTR R10,R0 GET INPUT LENGTH FOR 'HUH?' @VA04250 00227000 BZ REUSE CHECK IF 'REUSE' IS VALID @VA04250 00228000 LR R2,R10 GET INPUT LENGTH FOR TOKEN @VA04250 00229000 ST R2,INLENGTH SAVE INPUT LENGTH @VA04250 00230000 REINCHK BAL R10,INCHECK 'HX' ? @V4075A2 00231000 BAL R10,AMPTRUNK AMP NAME OVER 8 CHARS ?? @V4075A2 00232000 BAL R10,TOKEN TOKENIZE INPUT @V4075A2 00233000 PLISTSCN CLC PLIST(CHARLEN),VMBLOK VMBLOK? @V4075A2 00234000 BE VCHECK CHECK FOR ABBREVIATIONS @VA04250 00235000 CLC PLIST(THREEBYT),DMK DMKXXX @VA04250 00236000 BE GOMOD MOD SEARCH SET UP @VA04250 00237000 CLC PLIST(THREEBYT),HDK HDKXXX HRC001DM 00237300 BE GOMOD MOD SEARCH SET UP HRC001DM 00237600 CLC PLIST(CHARLEN),SCROLL SCROLL REQUEST? @VA04250 00238000 BE SCHECK ABBREV CHECK @VA04250 00239000 CLC PLIST(CHARLEN),REGS ALL REGS? @VA04250 00240000 BE RCHECK ABBREV CHECK @VA04250 00241000 CLC PLIST(TWOBYTES),G G REGS? @VA04250 00242000 BE GOREGS GEN REGS @VA04250 00243000 CLC PLIST(TWOBYTES),C C REGS? @VA04250 00244000 BE GOREGS CTL REGS @VA04250 00245000 CLC PLIST(CHARLEN),DISPLAY DISPLAY TYPE? @VA04250 00246000 BE DCHECK ABBREVIATION CHECK @VA04250 00247000 CLC PLIST(CHARLEN),TRACE TRACE REQUEST? @VA04250 00248000 BE TCHECK CHECK ABBREVIATIONS @VA04250 00249000 CLC PLIST(CHARLEN),LOCATE LOCATE? @VA04250 00250000 BE LCHECK GO CHECK @VA04250 00251000 CLC PLIST(L'QUERY),QUERY IS IT A QUESTION MARK? @VA04250 00252000 BE POSTIN GO SHOW INPUT LINE @VA04250 00253000 CLC PLIST(SEVENBYT),INVALID INVALID INPUT SIGNAL @VA04250 00254000 BE INQUIRY GO CHANGE 'HUH' CHARACTER @VA04250 00255000 CLC PLIST(CHARLEN),PRINT PRINT? @V4075A2 00256000 BE PCHECK GO TEST OUT THE COMMAND @V4075A2 00257000 CLC PLIST(CHARLEN),AMPERSAN &? @V4075A2 00258000 BE AMPCHECK GO HANDLE &NAME REQUEST @V4075A2 00259000 CLC PLIST,MAP NUC MAP REQUEST? @V4075A2 00260000 BE MAPCHECK YES - GO SET UP TO ADD MAP @V4075A2 00261000 CLC PLIST(CHARLEN),M MREGS ? @V4075A2 00262000 BE APCHECK GO TEST AP REGS REQUEST. @V4075A2 00263000 CLC PLIST(CHARLEN),A AREGS ? @V4075A2 00264000 BE APCHECK CHECK AP REGS REQUEST @V4075A2 00265000 * * * * * * * * ------- -------- -------- ------- * 00266000 * * * * * * * * THE INPUT WAS NOT RECOGNIZED. 00267000 * * * * * * * * SHOW THE USER HIS INPUT LINE 00268000 * * * * * * * * AND LET HIM RETRY 00269000 * * * * * * * * ------- -------- -------- ------- * 00270000 NOTKNOWN BAL R10,CLEAR CLEAR SCREEN @VA04250 00271000 LA R8,HUH ADDRESS OF '???...' CHARACTER @VA04250 00272000 LA R9,L'HUH AND LENGTH @VA04250 00273000 A R9,INLENGTH ADD THE LENGTH OF THE INPUT LINE @V4075A2 00274000 BAL R10,WRTERM DID NOT RECOGNIZE THE INPUT @VA04250 00275000 B REREADY GO BACK TO READ @VA04250 00276000 EJECT 00277000 * * * * * * * *------- -------- -------- -------- ------* 00278000 * * * * * * * * THESE HANDLE THE ROUTING TO THE VARIOUS 00279000 * * * * * * * * SUBROUTINES, AND THEIR RETURN. 00280000 * * * * * * * * EACH ROUTINE, WHERE APPROPRIATE, 00281000 * * * * * * * * CHECKS FOR VALID ABBREVIATIONS OF THE 00282000 * * * * * * * * SUBCOMMANDS. 00283000 * * * * * * * *------- -------- -------- -------- ------* 00284000 * * * * * * * * CHECK 'VIO' THEN GIVE VMBLOK A TRY 00285000 * * * * * * * * ------- -------- -------- ------- * 00286000 VCHECK CLC PLIST+ONE(L'NOPARM),NOPARM IS THIS JUST 'V' ? @VA04250 00287000 BE GOVMB TREAT IT AS A VMB REQUEST @VA04250 00288000 LA R2,PLIST+L'VIOBLOK-ONE COUNT LETTERS IN PLIST @VA04250 00289000 LA R3,VIOBLOK+L'VIOBLOK-ONE MATCH WITH THE TARGET @VA04250 00290000 LA R4,L'VIOBLOK-ONE COUNT TRIES DOWN TO 'VX' @VA04250 00291000 BAL R10,PCOMP GO TO PLIST CHECK ROUTINE @VA04250 00292000 B VMBCHECK NOT VIO - TRY VMB @VA04250 00293000 BAL R10,NULLCHK4 CHECK NO FOURTH TERM @VA04250 00294000 B GOIOB HIT ON VIO - GO TO IOB @VA04250 00295000 VMBCHECK LA R2,PLIST+L'VMBLOK-ONE PLIST ENTRY LENGTH @VA04250 00296000 LA R3,VMBLOK+L'VMBLOK-ONE MATCH VMBLOK @VA04250 00297000 LA R4,L'VMBLOK TRY ALL LETTERS @VA04250 00298000 BAL R10,PCOMP GO TO CHECK ROUTINE @VA04250 00299000 B NOTKNOWN NO LUCK @VA04250 00300000 * * * * * * * * ------- -------- -------- ------- * 00301000 * * * * * * * * VMBLOK SETUP 00302000 * * * * * * * * ------- -------- -------- ------- * 00303000 GOVMB BAL R10,CLEAR TOP OF SCREEN @VA04250 00304000 BAL R10,NULLCHK2 CHECK NO SECOND PARM @VA04250 00305000 L R15,VMBADD 'VMB' ADDRESS @VA04250 00306000 BALR R14,R15 GO @VA04250 00307000 LTR R15,R15 HOW WAS IT? @VA04250 00308000 BZ REREADY REAL GOOD @VA04250 00309000 B CODECHEK THAT BAD HUH? @VA04250 00310000 * * * * * * * * ------- -------- -------- ------- * 00311000 * * * * * * * * SCROLL VALIDITY CHECKING 00312000 * * * * * * * * ------- -------- -------- ------- * 00313000 SCHECK LA R2,PLIST+L'SCROLL COUNT LETTERS IN PLIST @VA04250 00314000 LA R3,SCROLL+L'SCROLL MATCH IN TARGET @VA04250 00315000 LA R4,L'SCROLL NUMBER OF TRIES @VA04250 00316000 BAL R10,PCOMP PLIST CHECKOUT @VA04250 00317000 B NOTKNOWN NO LUCK @VA04250 00318000 * * * * * * * * ------- -------- -------- ------- * 00319000 * * * * * * * * SET UP FOR SCROLL 00320000 * * * * * * * * ------- -------- -------- ------- * 00321000 GOSCROLL BAL R10,NULLCHK2 CHECK NO SECOND PARM @VA04250 00322000 LA R2,PLIST INPUT TO PASS TO SCROLL @VA04250 00323000 L R15,SCRADD SCROLL ROUTINE @VA04250 00324000 BALR R14,R15 GO SCROLL IT @VA04250 00325000 LTR R15,R15 OK ? @VA04250 00326000 BNZ CODECHEK WHAT WAS THE RET CODE @VA04250 00327000 B READY READ NEXT LINE @VA04250 00328000 * * * * * * * *------- -------- -------- -------- ------* 00329000 * * * * * * * * CHECK OUT 'RIOBLOK' 00330000 * * * * * * * * ------- -------- -------- ------- * 00331000 RCHECK CLC PLIST+ONE(L'NOPARM),NOPARM IS THIS JUST AN 'R'? @VA04250 00332000 BE GOREGS TREAT IT AS A REG REQUEST @VA04250 00333000 LA R2,PLIST+L'RIOBLOK-ONE 'RIO ' @VA04250 00334000 LA R3,RIOBLOK+L'RIOBLOK-ONE TARGET @VA04250 00335000 LA R4,L'RIOBLOK-ONE TRY DOWN TO 'RI' @VA04250 00336000 BAL R10,PCOMP CHECK PLIST @VA04250 00337000 B REGCHECK NOT RIO - TRY REGS @VA04250 00338000 BAL R10,NULLCHK3 CHECK NO THIRD PARM @VA04250 00339000 B GOIOB RIO REQUEST @VA04250 00340000 ************************************************************ @V4075A2 00341000 * CHECK FOR MREGS OR AREGS REQUEST @V4075A2 00342000 ************************************************************ @V4075A2 00343000 APCHECK LA R2,PLIST+L'XREGS-ONE COUNT PLIST ENTRY @V4075A2 00344000 LA R3,XREGS+L'XREGS-ONE COUNT TARGET @V4075A2 00345000 LA R4,L'XREGS-1 COUNT TIMES TO TRY @V4075A2 00346000 BAL R10,PCOMP CHECK ALL ABBREVIATIONS @V4075A2 00347000 B NOTKNOWN BAD RETURN @V4075A2 00348000 BAL R10,NULLCHK2 CHECK FOR NO SECOND TERM @V4075A2 00349000 B GOREGS OK - PASS IT TO DMMREG @V4075A2 00350000 * * * * * * * * ------- -------- -------- ------- * 00351000 * * * * * * * * NOT 'RIO' - NOW CHECK 'REGS' 00352000 * * * * * * * * ------- -------- -------- ------- * 00353000 REGCHECK LA R2,PLIST+L'REGS-ONE COUNT PLIST ENTRY @VA04250 00354000 LA R3,REGS+L'REGS-ONE COUNT IN TARGET @VA04250 00355000 LA R4,L'REGS COUNT TRIES @VA04250 00356000 BAL R10,PCOMP CHECK IT AGAINST TARGET @VA04250 00357000 B NOTKNOWN NOLUCK @VA04250 00358000 GOREGS BAL R10,NULLCHK2 CHECK NO SECOND PARM @VA04250 00359000 LA R2,PLIST GET THE COMMAND @VA04250 00360000 L R15,REGADD AND THE ADDRESS @VA04250 00361000 BALR R14,R15 AND GO REG IT @VA04250 00362000 LTR R15,R15 TEST RETCODE @VA04250 00363000 BNZ CODECHEK HOW BAD? @VA04250 00364000 B REREADY GO WRITE READY. @VA04250 00365000 ***************************************************************@V4075A2 00366000 * &NAME ALLOWS USER TO EQUATE A GIVEN NAME TO A @V4075A2 00367000 * GIVEN SUBCOMMAND. '&' ONLY REQUESTS A LISTING @V4075A2 00368000 * OF ASSIGNED NAMES. CHECK THIS FIRST. @V4075A2 00369000 * ENTRIES, OF THE FORM '&NAME A B C' WHERE &NAME @V4075A2 00370000 * IS A USER SUPPLIED NAME, AND 'A B C' IS A SUBCOMMAND @V4075A2 00371000 * ARE STORED IN 'AMPTABLE', AS A STRING OF 8 BYTE @V4075A2 00372000 * TOKENS. NEW ENTRIES ARE ADDED TO THE END. IF @V4075A2 00373000 * THIS IS A REPLACE THE OLD ENTRY IS FIRST REMOVED, @V4075A2 00374000 * AND THE GAS EXTRACTED. @V4075A2 00375000 ***************************************************************@V4075A2 00376000 AMPCHECK CLC AMPERSAN,PLIST IS THIS A LONE AMPERSAND ? @V4075A2 00377000 BE SHOWTAB YES - GO DISPLAY THE TABLE @V4075A2 00378000 ***************************************************************@V4075A2 00379000 * AN &NAME SUBCOMMAND MAY NOT CONTAIN @V4075A2 00380000 * AN &NAME TERM NOR A PRINT SUBCOMMAND. @V4075A2 00381000 ***************************************************************@V4075A2 00382000 CLC PLIST2(CHARLEN),PRINT IS THIS TO BE A PRINT? @V4075A2 00383000 BE ILLEGAMP YES - DONT ALLOW IT @V4075A2 00384000 LA R3,PLIST2 POINT TO NEXT TERM @V4075A2 00385000 TERM2CHK CLC FENCE,0(R3) ARE THERE MORE TERMS ? @V4075A2 00386000 BE TSEARCH NO MORE TERMS - GO SCAN TABLE @V4075A2 00387000 CLC 0(CHARLEN,R3),AMPERSAN IS THERE A SECOND AMPER ?@V4075A2 00388000 BE ILLEGAMP YES - GO ISSUE WARNING @V4075A2 00389000 LA R3,L'PLIST(R3) CHECK NEXT TERM @V4075A2 00390000 B TERM2CHK AND TRY THE NEXT @V4075A2 00391000 ***************************************************************@V4075A2 00392000 * SEARCH THE NAMETABLE FOR THE &NAME, @V4075A2 00393000 * THE END OF THE ENTRIES, OR THE END OF THE TABLE @V4075A2 00394000 ***************************************************************@V4075A2 00395000 TSEARCH LA R3,AMPTABLE POINT TO THE &NAME TABLE @V4075A2 00396000 ENDCHECK CLC FENCE,0(R3) END OF TABLE-SPACE? @V4075A2 00397000 BE OFFEND YES - NOT IN TAB. CHECK 2ND TERM @V4075A2 00398000 CLC BLANKS,0(R3) END OF ENTRIES @V4075A2 00399000 BE NOTINTAB NOT IN TABLE - ADD IT @V4075A2 00400000 CLC PLIST,0(R3) NAME WE'RE SEEKING ? @V4075A2 00401000 BE FOUNDAMP YES - NAME IS IN TABLE @V4075A2 00402000 LA R3,L'AMPTABLE(R3) NOT YET - TRY NEXT ENTRY @V4075A2 00403000 B ENDCHECK ROUND AGAIN @V4075A2 00404000 OFFEND CLC PLIST2,FENCE NO SECOND TERM - IE CALLING ? @V4075A2 00405000 BE NOTKNOWN YES - SO IT WAS NOT FOUND @V4075A2 00406000 B FULLMSG NO - ADDING, BUT NO ROOM IN TAB. @V4075A2 00407000 ***************************************************************@V4075A2 00408000 * ADD THIS NAME TO THE END OF THE TABLE @V4075A2 00409000 * R3 POINTS TO THE AMPTABLE SLOT @V4075A2 00410000 ***************************************************************@V4075A2 00411000 NOTINTAB CLC PLIST2,FENCE INVALID CALL TO TABLE? @V4075A2 00412000 BE NOTKNOWN YES SEND IT BACK @V4075A2 00413000 LA R2,PLIST NO - ADD IT - POINT TO INPUT @V4075A2 00414000 ST R3,NEWSTART SAVE THE START INCASE NO ROOM @V4075A2 00415000 NEXTTERM MVC 0(L'AMPTABLE,R3),0(R2) MOVE THE PLIST ENTRY TO THE TABLE 00416000 LA R2,L'PLIST(R2) NEXT PLIST ENTRY @V4075A2 00417000 CLC FENCE,0(R2) IS IT THE END OF THE PLIST? @V4075A2 00418000 BE AMPEND YES - &NAME IS ADDED - EXIT @V4075A2 00419000 LA R3,L'AMPTABLE(R3) NEXT SLOT IN &NAME TABLE @V4075A2 00420000 CLC FENCE,0(R3) ARE WE OFF THE END OF THE TABLE? @V4075A2 00421000 BNE NEXTTERM NOT YET - TRY AGAIN @V4075A2 00422000 ***************************************************************@V4075A2 00423000 * IF WE FILLED UP THE TABLE, WE MAY HAVE A PART @V4075A2 00424000 * OF AN ENTRY IN THE TABLE. THIS REMOVES IT @V4075A2 00425000 ***************************************************************@V4075A2 00426000 L R3,NEWSTART FILLED UP, CLEAR OUT PART ENTRY @V4075A2 00427000 ST R3,NEXTSLOT THIS IS THE NEW NEXT SLOT @V4075A2 00428000 FENCEYET CLC FENCE,0(R3) BACK TO END OF TABLE @V4075A2 00429000 BE FULLMSG YES - GO SEND NOROOM MSG @V4075A2 00430000 MVC 0(L'AMPTABLE,R3),BLANKS CLEAR OUT AN ENTRY @V4075A2 00431000 LA R3,L'AMPTABLE(R3) BUMP TO NEXT SLOT @V4075A2 00432000 B FENCEYET AND TRY THE NEXT @V4075A2 00433000 ***************************************************************@V4075A2 00434000 * AN &TERM WAS FOUND LURKING IN THE SUBCOMMAND. @V4075A2 00435000 * SEND A MESSAGE TO THE USER, WARNING HIM @V4075A2 00436000 ***************************************************************@V4075A2 00437000 ILLEGAMP LA R8,ILLAMPMS GET THE TWO AMPERS MESSAGE @V4075A2 00438000 LA R9,TAMSGLEN AND ITS LENGTH @V4075A2 00439000 BAL R10,WRTERM AND WRITE IT @V4075A2 00440000 B AMPEND GO TO GET OUT @V4075A2 00441000 ***************************************************************@V4075A2 00442000 * HERE AS A RESULT OF AN '&' REQUEST WE DISPLAY @V4075A2 00443000 * THE CURRENT TABLE ENTRIES @V4075A2 00444000 ***************************************************************@V4075A2 00445000 SHOWTAB MVI AMPBUFF,BLANK SET TO CLEAR @V4075A2 00446000 MVC AMPBUFF+1(L'AMPBUFF-1),AMPBUFF BUFFER TO BLANKS @V4075A2 00447000 LA R2,AMPTABLE START OF TABLE @V4075A2 00448000 LA R3,AMPBUFF START OF BUFFER @V4075A2 00449000 TABLEMOV MVC 0(L'AMPTABLE,R3),0(R2) MOVE TERM INTO THE BUFFER@V4075A2 00450000 LA R2,L'AMPTABLE(R2) BUMP INPUT POINTER @V4075A2 00451000 LA R3,L'AMPTABLE+1(R3) AND O/P PTR (MAY BE 8 BY)@V4075A2 00452000 CLC BLANKS,0(R2) END OF ENTRIES ? @V4075A2 00453000 BE WRTABEND YES - MARK END OF TABLE @V4075A2 00454000 CLC FENCE,0(R2) END OF TABLE ? @V4075A2 00455000 BE WRTABEND SAME DEAL @V4075A2 00456000 CLC 0(CHARLEN,R2),AMPERSAN OR IS IT THE NEXT ENTRY @V4075A2 00457000 BE WRTABLE WRITE IT BUT DONT FLAG END @V4075A2 00458000 B TABLEMOV STILL WITHIN ENTRY - BACK AROUND @V4075A2 00459000 ***************************************************************@V4075A2 00460000 * NOW THE LINE IS IN PLACE. RUN THROUGH IT @V4075A2 00461000 * AND STRIP OUT THE BLANKS, THEN WRITE IT. @V4075A2 00462000 ***************************************************************@V4075A2 00463000 WRTABEND MVI TABENDSW,TURNON SET END OF ENTRIES @V4075A2 00464000 WRTABLE XC OUTLINE,OUTLINE CLEAR THE OUTPUT AREA @V4075A2 00465000 MVI ZBSWITCH,TURNOFF SET SWITCH OFF @V4075A2 00466000 LA R4,AMPBUFF INPUT PTR @V4075A2 00467000 LA R5,OUTLINE OUTPUT POINTER @V4075A2 00468000 LA R6,L'AMPBUFF COUNT BYTES @V4075A2 00469000 ZBTEST CLI 0(R4),BLANK IS IT A BLANK? @V4075A2 00470000 BE ZBCHECK IF SO, IS IT THE FIRST? @V4075A2 00471000 CLI 0(R4),HEXZERO OR A HEX '00'? @V4075A2 00472000 BE ZBCHECK FIRST? @V4075A2 00473000 MVI ZBSWITCH,TURNOFF NEITHER - SET SWITCH OFF @V4075A2 00474000 MOVEBYTE MVC 0(ONE,R5),0(R4) MOVE A BYTE TO OUTPUT @V4075A2 00475000 LA R5,ONE(R5) BUMP OUTPUT PTR @V4075A2 00476000 BUMPIN LA R4,ONE(R4) BUMP INPUT PTR @V4075A2 00477000 BCT R6,ZBTEST TRY NEXT CHAR @V4075A2 00478000 B WRITESET ALL DONE - SET UP WRITE @V4075A2 00479000 ZBCHECK CLI ZBSWITCH,TURNON IS THIS NOT THE FIRST ZERO? @V4075A2 00480000 BE BUMPIN YES - SKIP IT @V4075A2 00481000 MVI ZBSWITCH,TURNON NO - SET IT ON @V4075A2 00482000 B MOVEBYTE BUT MOVE IT ANYWAY @V4075A2 00483000 ***************************************************************@V4075A2 00484000 * NOW ALL BYTES ARE MOVED. R5 POINTS @V4075A2 00485000 * TO THE LAST CHAR IN THE COMPRESSED LINE @V4075A2 00486000 * FIND ITS LENGTH, AND THEN WRITE IT. @V4075A2 00487000 ***************************************************************@V4075A2 00488000 WRITESET LA R6,OUTLINE-ONE START OF LINE @V4075A2 00489000 SR R5,R6 LENGTH OF LINE @V4075A2 00490000 LR R9,R5 PUT IT IN R9 @V4075A2 00491000 LA R8,OUTLINE START OF LINE @V4075A2 00492000 BAL R10,WRTERM GO WRITE IT @V4075A2 00493000 ***************************************************************@V4075A2 00494000 * SEE IF WE HAVE WRITTEN ALL THE LINES @V4075A2 00495000 * OR IF WE HAVE MORE TO GO. @V4075A2 00496000 ***************************************************************@V4075A2 00497000 CLI TABENDSW,TURNON DID WE REACH LAST ENTRY ? @V4075A2 00498000 BE ENDSWOFF YES - GO WRAP UP @V4075A2 00499000 LA R3,AMPBUFF START OF OUTPUT BUFFER @V4075A2 00500000 MVI AMPBUFF,BLANK AND CLEAR IT @V4075A2 00501000 MVC AMPBUFF+1(L'AMPBUFF-1),AMPBUFF @V4075A2 00502000 B TABLEMOV AND GO DO THE NEXT ONE @V4075A2 00503000 ENDSWOFF MVI TABENDSW,TURNOFF YES - RESET THE SWITCH. @V4075A2 00504000 B AMPEND AND EXIT @V4075A2 00505000 ***************************************************************@V4075A2 00506000 * WE FOUND THE NAME IN THE TABLE. @V4075A2 00507000 * IF THERE IS A SECOND PARM ON THE INPUT, @V4075A2 00508000 * REMOVE THE OLD ENTRY AND CLOSE UP THE TABLE. @V4075A2 00509000 * THEN ADD THE NEW ENTRY TO THE END. @V4075A2 00510000 * IF THERE IS NO SECOND PARM IN THE INPUT, @V4075A2 00511000 * FETCH THE EXISTING ENTRY AND SUBMIT IT. @V4075A2 00512000 ***************************************************************@V4075A2 00513000 FOUNDAMP CLC PLIST2,FENCE IS THERE NO SECOND TERM ? @V4075A2 00514000 BE SUBMIT RIGHT - GO SEND IN THE SUBCOMMAND@V4075A2 00515000 ***************************************************************@V4075A2 00516000 * THERE IS A PARM. 'PERFORM TABLE MAINTENANCE' @V4075A2 00517000 ***************************************************************@V4075A2 00518000 ST R3,NEXTSLOT TRUE IF WE REPLACE LAST ENTRY @V4075A2 00519000 LA R2,L'AMPTABLE(R3) NEXT SLOT IN TABLE @V4075A2 00520000 NEXTNAME CLC 0(CHARLEN,R2),AMPERSAN SCAN FOR NEXT '&' @V4075A2 00521000 BE CLOSEUP FOUND IT - GO CLOSE GAP @V4075A2 00522000 CLC BLANKS,0(R2) THEN IS IT BLANKS ? @V4075A2 00523000 BE LASTENTR YES - THIS WAS THE LAST ENTRY @V4075A2 00524000 CLC FENCE,0(R2) END OF TABLE AREA ? @V4075A2 00525000 BE LASTENTR LAST IN SPACE @V4075A2 00526000 LA R2,L'AMPTABLE(R2) NONE OF THE ABOVE @V4075A2 00527000 B NEXTNAME TRY NEXT TERM @V4075A2 00528000 ***************************************************************@V4075A2 00529000 * THIS BLANKS OUT THE ENTRY IF IT WAS THE LAST ONE @V4075A2 00530000 ***************************************************************@V4075A2 00531000 LASTENTR MVC 0(L'AMPTABLE,R3),BLANKS CLEAR OUT THE ENTRY @V4075A2 00532000 LA R3,L'AMPTABLE(R3) POINT TO NEXT TERM @V4075A2 00533000 CLC BLANKS,0(R3) TABLE EMPTY ? @V4075A2 00534000 BE ADDNEXT YES - GO PLUG IT IN @V4075A2 00535000 CLC FENCE,0(R3) OR END OF TABLE SPACE ? @V4075A2 00536000 BE ADDNEXT EITHER WAY, GO PLUG IN THE NEW ON@V4075A2 00537000 B LASTENTR NO - GO CLEAR MORE @V4075A2 00538000 ***************************************************************@V4075A2 00539000 * NOW CLOSE UP TO COVER THE OLD NAME @V4075A2 00540000 * R2 POINTS TO NEXT VALID NAME, R3 TO THE OLD NAME. @V4075A2 00541000 ***************************************************************@V4075A2 00542000 CLOSEUP MVC 0(L'AMPTABLE,R3),0(R2) MOVE ENTRY LEFT IN TABLE @V4075A2 00543000 LA R2,L'AMPTABLE(R2) BUMP INPUT PTR @V4075A2 00544000 LA R3,L'AMPTABLE(R3) AND OUT PTR @V4075A2 00545000 CLC FENCE,0(R2) OUT OF SPACE ? @V4075A2 00546000 BE LAPCHECK GO CHECK ENDING CONDITION @V4075A2 00547000 CLC BLANKS,0(R2) OR ALL DONE ? @V4075A2 00548000 BE LAPCHECK CHECK ENDING @V4075A2 00549000 B CLOSEUP NOT YET - ROUND AGAIN @V4075A2 00550000 ***************************************************************@V4075A2 00551000 * NOW CHECK THAT THE WHOLE ENTRY WAS CLEARED @V4075A2 00552000 ***************************************************************@V4075A2 00553000 LAPCHECK ST R3,NEXTSLOT SAVE THE POINTER TO NEXT SLOT @V4075A2 00554000 LAPLOOP CLC BLANKS,0(R3) HAS IT BEEN CLEARED ? @V4075A2 00555000 BE ADDNEXT YES - GO ADD NEW ENTRY @V4075A2 00556000 CLC FENCE,0(R3) OR IS IT END OF TABLE ? @V4075A2 00557000 BE ADDNEXT YES - GO ADD THE NEW ENTRY @V4075A2 00558000 MVC 0(L'AMPTABLE,R3),BLANKS NO - DO IT NOW @V4075A2 00559000 LA R3,L'AMPTABLE(R3) LOOK AT THE NEXT. @V4075A2 00560000 B LAPLOOP AND ROUND AGAIN @V4075A2 00561000 ***************************************************************@V4075A2 00562000 * THE LIST IS NOW CONDENSED. ADD THE NEW @V4075A2 00563000 * ENTRY ONTO THE END, GETTING THE STARTING @V4075A2 00564000 * ADDRESS FROM 'NEXTSLOT' @V4075A2 00565000 ************************************************************* @V4075A2 00566000 ADDNEXT LA R2,PLIST POINT TO NEW ENTRY @V4075A2 00567000 L R3,NEXTSLOT POINT TO NEXTSLOT @V4075A2 00568000 NEXTOKEN MVC 0(L'AMPTABLE,R3),0(R2) MOVE IN THE TOKEN @V4075A2 00569000 LA R2,L'AMPTABLE(R2) BUMP INPUT @V4075A2 00570000 LA R3,L'AMPTABLE(R3) AND OUTPUT @V4075A2 00571000 CLC FENCE,0(R2) END OF INPUT FROM PLIST? @V4075A2 00572000 BE AMPEND YES ALL MOVED @V4075A2 00573000 CLC FENCE,0(R3) END OF TABLE SPACE ? @V4075A2 00574000 BE NOROOM RIGHT - GO SEND MESSAGE @V4075A2 00575000 B NEXTOKEN NO - GO GET NEXT @V4075A2 00576000 ***************************************************************@V4075A2 00577000 * CLEAR OUT THE PARTIAL ENTRY AND @V4075A2 00578000 * WRITE THE 'NO ROOM AT THE TABLE' MESSAGE @V4075A2 00579000 ***************************************************************@V4075A2 00580000 NOROOM L R3,NEXTSLOT POINT TO FIRST TRUE SPACE @V4075A2 00581000 CLEARTAB MVC 0(L'AMPTABLE,R3),BLANKS CLEAR A SLOT @V4075A2 00582000 LA R3,L'AMPTABLE(R3) POINT TO NEXT TO CLEAR @V4075A2 00583000 CLC BLANKS,0(R3) IS IT ALREADY BLANK ? @V4075A2 00584000 BE FULLMSG YES - DONE - GO TO MSG @V4075A2 00585000 CLC FENCE,0(R3) OR END OF TABLE? @V4075A2 00586000 BNE CLEARTAB NO - GO DO NEXT @V4075A2 00587000 FULLMSG LA R8,TABFULMS GET THE ADDRESS OF THE MSG @V4075A2 00588000 LA R9,TFMSGLEN AND THE LENGTH @V4075A2 00589000 BAL R10,WRTERM AND GO WRITE IT @V4075A2 00590000 B AMPEND AND GET OUT @V4075A2 00591000 ***************************************************************@V4075A2 00592000 * GET THE SUBCOMMAND FROM THE TABLE AND @V4075A2 00593000 * SEND IT TO BE PROCESSED. @V4075A2 00594000 ***************************************************************@V4075A2 00595000 SUBMIT MVC INSAVE,BLANKOUT CLEAR SAVE AREA @V4075A2 00596000 MVC INSAVE,INPUT SAVE INPUT LINE @V4075A2 00597000 MVC OLDINLEN,INLENGTH AND LENGTH @V4075A2 00598000 LA R4,L'AMPTABLE(R3) R4 NOW START OF SUBC. @V4075A2 00599000 LA R3,INPUT WHERE TO PUT IT @V4075A2 00600000 LA R2,NULL SET COUNTER @V4075A2 00601000 AMPTOPLS MVC 0(L'AMPTABLE,R3),0(R4) MOVE IN A TOKEN @V4075A2 00602000 LA R4,L'AMPTABLE(R4) BUMP INPUT @V4075A2 00603000 LA R3,L'AMPTABLE+1(R3) AND OUTPUT @V4075A2 00604000 LA R2,L'AMPTABLE+1(R2) COUNT THE BYTES MOVED IN @V4075A2 00605000 CLC 0(CHARLEN,R4),AMPERSAN START OF NEXT ENTRY ? @V4075A2 00606000 BE COUNTIT YES - GO SAVE LENGTH @V4075A2 00607000 CLC BLANKS,0(R4) OR END OF TABLE? @V4075A2 00608000 BE COUNTIT YES - GO SAVE LENGTH @V4075A2 00609000 CLC FENCE,0(R4) OR END OF TABLE SPACE ? @V4075A2 00610000 BE COUNTIT YES - GO SAVE LENGTH @V4075A2 00611000 B AMPTOPLS NONE OF ABOVE - MOVE IN TOKEN @V4075A2 00612000 COUNTIT ST R2,INLENGTH SAVE THE INPUT LENGTH @V4075A2 00613000 B REINCHK ALL DONE - GO TOKENIZE @V4075A2 00614000 ************************************************************ @V4075A2 00615000 * THE LENGTH OF AN ''&NAME'' MUST NOT EXCEED @V4075A2 00616000 * EIGHT BYTES - CHECK FOR THIS. @V4075A2 00617000 ************************************************************ @V4075A2 00618000 AMPTRUNK LA R3,INPUT START OF INPUT @V4075A2 00619000 BCHK CLI 0(R3),BLANK SCAN FOR START OF DATA @V4075A2 00620000 BNE AMP THEN IS IT AN AMPERSAND? @V4075A2 00621000 LA R3,1(R3) LOOK FOR NEXT @V4075A2 00622000 B BCHK AND TRY IT @V4075A2 00623000 AMP CLC 0(CHARLEN,R3),AMPERSAN IS IT AN &NAME DEAL? @V4075A2 00624000 BNE NOTRUNK NO - NO CHECK NEEDED @V4075A2 00625000 LA R4,L'PLIST CHECK FOR TOTAL 8 BYTES @V4075A2 00626000 AMPTRK LA R3,1(R3) BUMP TO NAME @V4075A2 00627000 CLI 0(R3),BLANK OFF THE END ? @V4075A2 00628000 BE NOTRUNK YES - LENGTH IS OK @V4075A2 00629000 BCT R4,AMPTRK NOT YET - GO COUNT MORE @V4075A2 00630000 B NOTKNOWN &NAME IS TOO LONG - DUMP IT @V4075A2 00631000 NOTRUNK BR R10 RETURN @V4075A2 00632000 ***************************************************************@V4075A2 00633000 * ENDING ROUTINE @V4075A2 00634000 ***************************************************************@V4075A2 00635000 AMPEND B REREADY BACK TO WORK @V4075A2 00636000 ************************************************************ @V4075A2 00637000 * SAVE THE SECOND PARM ON THIS LINE, AS IT IS THE @V4075A2 00638000 * SEARCH ARGUMENT FOR THE LOCATE COMMAND, AND CANNOT @V4075A2 00639000 * BE TOKENIZED. @V4075A2 00640000 ************************************************************ @V4075A2 00641000 SAVSTRNG LA R3,INPUT START OF INPUT LINE @V4075A2 00642000 L R4,INLENGTH AND ITS LENGTH @V4075A2 00643000 STRINGSC CLI 0(R3),BLANK SCAN LEADING BLANKS @V4075A2 00644000 BNE LOCATEP1 NO - INTO FIRST PARM (L) @V4075A2 00645000 LA R3,1(R3) NEXT INPUT BYTE @V4075A2 00646000 BCT R4,STRINGSC GO SCAN LINE @V4075A2 00647000 B NOTKNOWN FELL OFF THE END ????? @V4075A2 00648000 LOCATEP1 CLI 0(R3),BLANK SCAN P1 TILL YOU FIND THE BLANK @V4075A2 00649000 BE LOCATES1 NOW GO LOOK FOR SECOND PARM @V4075A2 00650000 LA R3,1(R3) NEXT BYTE @V4075A2 00651000 BCT R4,LOCATEP1 IF NOT TOO FAR @V4075A2 00652000 B NOTKNOWN END OF LINE @V4075A2 00653000 LOCATES1 CLI 0(R3),BLANK SCAN THIS SPACE FOR SECOND PARM @V4075A2 00654000 BNE LOCSTRNG GOT IT - GO MOVE IT @V4075A2 00655000 LA R3,1(R3) NO - TRY NEXT @V4075A2 00656000 BCT R4,LOCATES1 TRY AGAIN @V4075A2 00657000 B NOTKNOWN OFF THE END @V4075A2 00658000 ************************************************************ @V4075A2 00659000 * NOW R3 POINTS TO THE FIRST BYTE OF THE LOCATE SEARCH @V4075A2 00660000 * ARGUMENT. FIND THE LENGTH OF THE BALANCE OF THE INPUT @V4075A2 00661000 * AND MOVE IT TO STRINGAD WHERE DMMLOC CAN FIND IT @V4075A2 00662000 ************************************************************ @V4075A2 00663000 LOCSTRNG LA R4,INPUT POINT TO START OF INPUT LINE @V4075A2 00664000 A R4,INLENGTH NOW POINT TO END OF INPUT @V4075A2 00665000 SR R4,R3 R2 NOW HAS LENGTH OF TERMS 2 - 5 @V4075A2 00666000 BM FIXUP NOTHING CAN GO WRONG...GO WRONG..@V4075A2 00667000 C R4,MAXSTRNG GO WRONG... GO WRONG... @V4075A2 00668000 BH FIXUP BUT IF IT DOES... @V4075A2 00669000 SAVESTLN ST R4,STRINGLN SAVE IT FOR DMMLOC @V4075A2 00670000 BCTR R4,R0 SET UP LENGTH FOR EX @V4075A2 00671000 MVI STRINGAD,BLANK SET UP TO CLEAR STRING @V4075A2 00672000 MVC STRINGAD+1(L'STRINGAD-1),STRINGAD CLR TO BLANKS @V4075A2 00673000 EX R4,STRMOVE MOVE THE STRING @V4075A2 00674000 BR R10 RETURN TO GO TO DMMLOC @V4075A2 00675000 FIXUP L R4,MAXSTRNG SET ARBITRARY MAX OF 148 @V4075A2 00676000 B SAVESTLN AND GO SAVE IT @V4075A2 00677000 STRMOVE MVC STRINGAD(0),0(R3) MOVE THE STRING @V4075A2 00678000 * * * * * * * * ------- -------- -------- ------- * 00679000 * * * * * * * * DISPLAY COMMAND 00680000 * * * * * * * * ------- -------- -------- ------- * 00681000 DCHECK CLI PLIST2,PC % WITH NO ADDRESS? @VA04250 00682000 BE NOTKNOWN YES - SEND IT BACK @VA04250 00683000 LA R2,PLIST+L'DISPLAY-ONE END OF PLIST ENTRY @VA04250 00684000 LA R3,DISPLAY+L'DISPLAY-ONE END OF TARGET @VA04250 00685000 LA R4,L'DISPLAY COUNT @VA04250 00686000 BAL R10,PCOMP GO CHECK IT @VA04250 00687000 B NOTKNOWN NO LUCK @VA04250 00688000 GOFED BAL R10,ADLENGTH CHECK FOR ONLY SIX ADD DIGITS @VA04250 00689000 BAL R10,NULLCHK4 CHECK NO FOURTH TERM @VA04250 00690000 CLC PLIST3,FENCE IS THERE NO LENGTH TERM? @VA04250 00691000 BE GOFEX YES - TREAT IT AS AN 'X' @VA04250 00692000 LA R2,PLIST PLIST ADDRESS @VA04250 00693000 L R15,FEDADD DUMP @VA04250 00694000 BALR R14,R15 GO @VA04250 00695000 LTR R15,R15 TEST @VA04250 00696000 BNZ CODECHEK HOW BAD @VA04250 00697000 L R3,HEXADADD DISPLAY ADDRESS IN HEX @VA04250 00698000 ST R2,0(R3) PLUG LAST ADDRESS FROM DUMP @VA04250 00699000 B REREADY GET NEXT @VA04250 00700000 * * * * * * * * ------- -------- -------- ------- * 00701000 * * * * * * * * TRACE REQUEST 00702000 * * * * * * * * ------- -------- -------- ------- * 00703000 TCHECK LA R2,PLIST+L'TRACE-ONE PLIST FOR TRACE @VA04250 00704000 LA R3,TRACE+L'TRACE-ONE TARGET @VA04250 00705000 LA R4,L'TRACE COUNT TRIES @VA04250 00706000 BAL R10,PCOMP PLIST CHECKOUT @VA04250 00707000 B NOTKNOWN NO LUCK @VA04250 00708000 * * * * * * * * ------- -------- -------- ------- * 00709000 * * * * * * * * TRACE SET UP 00710000 * * * * * * * * ------- -------- -------- ------- * 00711000 GOTRACE LA R2,PLIST PLIST @VA04250 00712000 BAL R10,NULLCHK3 CHECK NO THIRD PARM @VA04250 00713000 L R15,TRACEADD ADDRESS @VA04250 00714000 BALR R14,R15 GO @VA04250 00715000 LTR R15,R15 RETCODE ZERO? @VA04250 00716000 BNZ CODECHEK WELL HOW BAD WAS IT @VA04250 00717000 L R3,HEXADADD LAST ADDRESS DISPLAYED @VA04250 00718000 LA R2,0(R2) INDICATE DUMP NOT LAST COMMAND @VA04250 00719000 S R2,SCBKUP CALC CURRENT LINE PTR FOR SCROLL @VA04250 00720000 ST R2,0(R3) PLUG LAST ADDRESS FOR SCROLL @VA04250 00721000 B REREADY GET NEXT CMD @VA04250 00722000 ************************************************************ @V4075A2 00723000 * USER HAS CALLED MAP TO ADD A NUC MAP TO THE END OF THE DUMP. @V4075A2 00724000 * THIS GETS SPACE FOR MAP'S BUFFER, THEN READS THE DUMP @V4075A2 00725000 * TO SEE THAT THERE IS NOT ALREADY A MAP ON THE END. @V4075A2 00726000 * IT THEN FILLS IN SHARECON WITH THE DATA MAP WILL NEED, @V4075A2 00727000 * THE DUMP NUMBER AND THE ADDRESS OF DMKCPEND. @V4075A2 00728000 * IN R1 IT THEN PASSES TO DMMMAP A POINTER TO THE @V4075A2 00729000 * ADDRESS OF 20K BUFFER FOR MAP TO HOLD THE CONDENSED 00730000 * LOAD MAP. ON RETURN IT FREES THE STORAGE AND, IF THE @V4075A2 00731000 * RETURN IS OK, IT TELLS THE USER. @V4075A2 00732000 ************************************************************ @V4075A2 00733000 MAPCHECK DMSFREE DWORDS=2560,ERR=FREEERR GET 20K FOR BUFFERS @VA08369 00734000 ST R1,GOTTENAD SAVE THE POINTER @V4075A2 00735000 LR R2,R1 GET IT IN A WORK REG @V4075A2 00736000 ************************************************************ @V4075A2 00737000 * NOW READ THE DUMP INFORMATION RECORD TO FIND @V4075A2 00738000 * HOW MANY RECORDS IN THE ORIGINAL DUMP. @V4075A2 00739000 ************************************************************ @V4075A2 00740000 LA R3,DUMPFSCB FSCB FOR READ @V4075A2 00741000 FSREAD FSCB=(R3),BUFFER=(R2),ERROR=RDERR,RECNO=2 @V4075A2 00742000 USING DMPINREC,R2 LAY DUMPINREC OVER THE RECORD @V4075A2 00743000 LA R2,DMPPGMAP+ITEMTAB INCREMENT TO THE PAGE DATA @V4075A2 00744000 DROP R2 AND RETURN R2 @V4075A2 00745000 ************************************************************ @V4075A2 00746000 * NOW SCAN THE ITEM TABLE FOR THE 'FFFF' INDICATING THE @V4075A2 00747000 * END OF THE ORIGINAL DUMP ENTRIES. @V4075A2 00748000 ************************************************************ @V4075A2 00749000 LA R5,NULL SET COUNTER TO 0 @V4075A2 00750000 L R4,MAXCOUNT SET FOR TOP LIMIT TO TRIES @V4075A2 00751000 EOTABLE CLC EOTFOX,0(R2) END OF THE TABLE @V4075A2 00752000 BE READCHK SURE - GO CHECK FOR DUMP @V4075A2 00753000 LA R2,TWO(R2) NO - BUMP THE TABLE POINTER @V4075A2 00754000 LA R5,ONE(R5) AND BUMP THE COUNTER @V4075A2 00755000 BCT R4,EOTABLE AND TRY ANOTHER @V4075A2 00756000 LA R8,ITBLMSG WARN ABOUT BAD ITEM TABLE @V4075A2 00757000 LA R9,L'ITBLMSG AND LENGTH @V4075A2 00758000 BAL R10,WRTERM AND GO SEND IT @V4075A2 00759000 ************************************************************ @V4075A2 00760000 * NOW READ PAST THE END OF THE ORIGINAL DUMP. IF THERE IS @V4075A2 00761000 * NO NUC MAP, WE SHOULD GET A READ ERROR. @V4075A2 00762000 ************************************************************ @V4075A2 00763000 READCHK L R4,GOTTENAD ADDRESS FOR READ BUFFER @V4075A2 00764000 LA R5,DUMMIES(R5) EXTRA RECS AT START OF DUMP @V4075A2 00765000 FSREAD FSCB=(R3),BUFFER=(R4),RECNO=(R5) @V4075A2 00766000 LR R2,R15 SAVE THE RETURN CODE @V4075A2 00767000 C R2,EOF EOF? - NORMAL - NO MAP @V4075A2 00768000 BE OKNOMAP YES - GO SET UP TO GO TO MAP @V4075A2 00769000 C R2,NOERR IS THERE A MAP THERE? @V4075A2 00770000 BE TWOMAPS YES - GO WARN USER @V4075A2 00771000 B RDERR MUST BE SOME OTHER ERR @V4075A2 00772000 ************************************************************ @V4075A2 00773000 * WRITE THE ERROR MSG "MAP ALREADY PRESENT" @V4075A2 00774000 ************************************************************ @V4075A2 00775000 TWOMAPS LA R8,TWOMAPMS MAP ALREADY PRESENT MSG @V4075A2 00776000 LA R9,L'TWOMAPMS AND LENGTH @V4075A2 00777000 BAL R10,WRTERM AND GO WRITE IT @V4075A2 00778000 B REREADY AND BACK TO WORK @V4075A2 00779000 ************************************************************ @V4075A2 00780000 * NOW SET UP THE VALUES DMMMAP EXPECTS TO FIND IN SHARECON. @V4075A2 00781000 * FIRST THE DUMPNUMBER, FROM THE DUMPFSCB, @V4075A2 00782000 * THEN THE ADDRESS OF DMKCPEND FROM THE SYMBOL TABLE. @V4075A2 00783000 ************************************************************ @V4075A2 00784000 OKNOMAP MVC DUMPNUM,DUMPFSCB+L'DUMPNUM PLUG THIS DUMP NUM @V4075A2 00785000 ************************************************************ @V4075A2 00786000 * NOW FIND ADDRESS OF DMKCPEND FOR MAP TO CHECK AGAINST @V4075A2 00787000 * THE LOAD LOAD MAP VALUE FOR CPEND. READ IN THE SYMBOL @V4075A2 00788000 * TABLE AND SCAN FOR CPEND @V4075A2 00789000 ************************************************************ @V4075A2 00790000 FSREAD FSCB=(R3),BUFFER=(R4),RECNO=1,ERROR=RDERR @V4075A2 00791000 ENDYET CLC CPEND,0(R4) IS THIS DMKCPEND? @V4075A2 00792000 BE GOTEND YES - GO SAVE ADDRESS @V4075A2 00793000 LA R4,TABENT(R4) NO - BUMP TO NEXT SYM TAB ENTRY @V4075A2 00794000 B ENDYET AND TRY IT @V4075A2 00795000 GOTEND L R4,EIGHT(R4) GO TO ADDRESS PART OF ENTRY @V4075A2 00796000 ST R4,REALEND AND SAVE IT @V4075A2 00797000 ************************************************************ @V4075A2 00798000 * THE DUMP MUST BE ON THE "A" DISK, CHECK THIS IN FSCB. @V4075A2 00799000 * THE FSCB MAY SAY "A" DISK BUT THE DUMP MAY REALLY BE @V4075A2 00800000 * ON A READ EXTENSION OF THE "A" DISK ( B/A ). @V4075A2 00801000 * CHECK THE FILE STATUS BLOCK TO SEE WHETHER WE HAVE @V4075A2 00802000 * THIS CASE. IF NOT, CLOSE THE FILE AND PASS THE @V4075A2 00803000 * ADDRESS OF THE 12K BUFFER TO DMMMAP. @V4075A2 00804000 * OTHERWISE WARN THE USER TO PUT THE DUMP ON THE "A" DISK. @V4075A2 00805000 ************************************************************ @V4075A2 00806000 CLC ADISK,DUMPFSCB+FM IS THE DUMP ON THE A DISK? @V4075A2 00807000 BNE NOWRITE NO - GO WARN USER @V4075A2 00808000 FSSTATE FSCB=DUMPFSCB THEN IS IT B/A ? GET THE @V4075A2 00809000 LR R2,R1 FILE STATUS TABLE. @V4075A2 00810000 LTR R15,R15 IF NO FILE - NO STATUS TABLE @V4075A2 00811000 BNZ STATERR MUSTA LOST THE DUMP SOMEHOW @V4075A2 00812000 USING FSTSECT,R2 NOW CHECK THE FILE STATUS FLAG@V4075A2 00813000 MVC STATFLAG,FSTFB FOR A X'C0' - READ EXTENSION @V4075A2 00814000 NI STATFLAG,HIHALF EXAMINE HI HALF BYTE ONLY @V4075A2 00815000 CLI STATFLAG,FSTFRWX READ EXTENSION OF R/W DISK? @V4075A2 00816000 BE NOWRITE YES - GO TELL USER @V4075A2 00817000 DROP R2 DROP @V4075A2 00818000 FSCLOSE FSCB=DUMPFSCB SO MAP CAN WRITE THE NUC MAP @V4075A2 00819000 LA R1,GOTTENAD POINTER TO BUFFER ADDRESS @V4075A2 00820000 L R15,MAPADD ADDRESS OF DMMMAP @V4075A2 00821000 BALR R14,R15 AND GO @V4075A2 00822000 ST R15,MAPRET SAVE THE RETURN @V4075A2 00823000 L R1,GOTTENAD SET UP TO RETURN CORE @V4075A2 00824000 DMSFRET DWORDS=2560,LOC=(1),ERR=FREEERR @VA08369 00825000 LA R2,DUMPFSCB AGAIN CLOSE THE FILE @V4075A2 00826000 FSCLOSE FSCB=(R2) SO DUMPSCAN CAN READ IT @V4075A2 00827000 L R2,MAPRET GET THE RETURN FROM MAP @V4075A2 00828000 LTR R2,R2 HOW WAS IT @V4075A2 00829000 BNZ REREADY BAD @V4075A2 00830000 LA R8,MAPONMSG GOOD - TELL USER @V4075A2 00831000 LA R9,L'MAPONMSG AND LENGTH @V4075A2 00832000 BAL R10,WRTERM AND WRITE IT @V4075A2 00833000 B REREADY AND BACK TO THE BARRELL @V4075A2 00834000 ********************************************************** @V4075A2 00835000 * EITHER THE DUMP IS NOT ON THE A DISK, OR IT IS ON @V4075A2 00836000 * A DISK WHICH IS A READ EXTENSION OF THE A DISK. @V4075A2 00837000 * IN THIS CASE, DMMMAP WOULD WRITE THE NUC MAP AS @V4075A2 00838000 * A SEPARATE FILE. DISALLOW THIS AND WARN THE USER. @V4075A2 00839000 ********************************************************** @V4075A2 00840000 NOWRITE LA R8,DPNOTAMS DUMP NOT ON A DISK @V4075A2 00841000 LA R9,L'DPNOTAMS AND LENGTH @V4075A2 00842000 BAL R10,WRTERM AND WRITE IT @V4075A2 00843000 B REREADY BACK TO WORK @V4075A2 00844000 ************************************************************ @V4075A2 00845000 * READ ERROR HANDLER @V4075A2 00846000 ************************************************************ @V4075A2 00847000 RDERR LR R2,R15 SAVE THE RETURN @V4075A2 00848000 LINEDIT TEXT='DMMDSC100S ERROR ''...'' READING FILE ''........X00849000 ............''',DOT=NO,RENT=NO,SUB=(DEC,(2),CHAR8A,DUMPFX00850000 SCB+8) WRITE THE READ ERROR MSG @V4075A2 00851000 B REREADY AND RETURN @V4075A2 00852000 ************************************************************ @V4075A2 00853000 * FREE - FRET ERROR HANDLER @V4075A2 00854000 ************************************************************ @V4075A2 00855000 FREEERR LR R2,R15 SAVE THE ERROR @V4075A2 00856000 LINEDIT TEXT='ERROR ''...'' IN DMSFREE OR DMSFRET, SEE SYSTEM X00857000 PROGRAMMERS GUIDE',DOT=NO,SUB=(DEC,(2)) WRITE ERROR 00858000 B REREADY AND RETURN @V4075A2 00859000 * * * * * * * *------- -------- -------- -------- -------* 00860000 * * * * * * * * LOCATE REQUEST 00861000 * * * * * * * * ------- -------- -------- ------- * 00862000 LCHECK LA R2,PLIST+L'LOCATE-ONE PLIST FOR LOCATE @VA04250 00863000 LA R3,LOCATE+L'LOCATE-ONE TARGET @VA04250 00864000 LA R4,L'LOCATE COUNT TRIES @VA04250 00865000 BAL R10,PCOMP PLIST CHECKOUT @VA04250 00866000 B NOTKNOWN NO LUCK @VA04250 00867000 * * * * * * * * ------- -------- -------- ------- * 00868000 * * * * * * * * TRACE SET UP 00869000 * * * * * * * * ------- -------- -------- ------- * 00870000 GOLOCATE LA R2,PLIST PLIST @VA04250 00871000 BAL R10,NULLCHK6 GO TEST FOR RIGHT NO. PARMS @V4075A2 00872000 MVC PLIST+FR(TWOBYTES),BLANKS TRUNC 'FROM' TO 6 BY @VA04250 00873000 MVC PLIST+TO(TWOBYTES),BLANKS TRUNC 'TO' TO 6 BYTES @VA04250 00874000 BAL R10,SAVSTRNG GO SAVE THE SEARCH ARGUMENT @V4075A2 00875000 ***************************************************************@V4075A2 00876000 * IF THIS IS A ONE-SHOT PRINT WITH NO SUBCOMMAND @V4075A2 00877000 * RESTORE THE LATEST GENERATED 'FROM' ADDRESS @V4075A2 00878000 * INTO THE PLIST IF IT IS NOT BLANKS - IE A NEW @V4075A2 00879000 * ADDRESS HAS NOT BEEN DEVELOPED @V4075A2 00880000 ***************************************************************@V4075A2 00881000 CLI PRINTONE,NOSUBC IS THIS 1-SHOT-PRT-W-NO-SUBCMD ?@V4075A2 00882000 BNE FROMOK NO - THE FROM ADDRESS IS GOOD @V4075A2 00883000 CLC NEWFREBC,BLANKS IS THERE A VALID NEW ADDRESS ? @V4075A2 00884000 BE FROMOK NO - USE THE OLD ONE @V4075A2 00885000 MVC PLIST3,NEWFREBC YES - GET SAVED NEW-EBCD-ADDR @V4075A2 00886000 MVC NEWFREBC,BLANKS AND CLEAR IT @V4075A2 00887000 FROMOK L R15,LOCADD ADDRESS OF LOCATE SUBROUTINE @V4075A2 00888000 BALR R14,R15 GO @VA04250 00889000 LTR R15,R15 RETCODE ZERO? @VA04250 00890000 BNZ CODECHEK WELL HOW BAD WAS IT @VA04250 00891000 B READY GET NEXT CMD @VA04250 00892000 ***************************************************************@V4075A2 00893000 * CHECK THE 'PRINT' COMMAND FOR VALID OPERANDS, @V4075A2 00894000 * ONLY ONE OPERAND, AND CORRECT FORMAT - 'PRINT ON, @V4075A2 00895000 * OFF,CLOSE, ,?,SUBCOMMAND' @V4075A2 00896000 ***************************************************************@V4075A2 00897000 PCHECK CLC PLIST1,PRT ALLOW THE 'PRT' ABBREV. @V4075A2 00898000 BE CHECKTWO GO TEST SECOND TERM @V4075A2 00899000 ***************************************************************@V4075A2 00900000 * NOW CHECK FOR TRUNCATIONS @V4075A2 00901000 ***************************************************************@V4075A2 00902000 LA R2,PLIST+L'PRINT-ONE PLIST ENTRY @V4075A2 00903000 LA R3,PRINT+L'PRINT-ONE TARGET ENTRY @V4075A2 00904000 LA R4,L'PRINT BYTES TO TRY @V4075A2 00905000 BAL R10,PCOMP GO TO TRUNCATION CHECK ROUTINE @V4075A2 00906000 B NOTKNOWN NOT PRINT - SEND IT BACK @V4075A2 00907000 ***************************************************************@V4075A2 00908000 * NOW CHECK THE SECOND PARM FOR 'ON, OF, OFF, C(LOSE' @V4075A2 00909000 * '?' OR NO PARM. @V4075A2 00910000 ***************************************************************@V4075A2 00911000 CHECKTWO CLC PLIST2,ON TURN PRINT ON? @V4075A2 00912000 BE PRINTON YES @V4075A2 00913000 CLC PLIST2,OFF OFF? @V4075A2 00914000 BE PRINTOFF @V4075A2 00915000 CLC PLIST2,OF OF? @V4075A2 00916000 BE PRINTOFF GO TURN IT OFF @V4075A2 00917000 ***************************************************************@V4075A2 00918000 * CHECK FOR A '?' OR A NULL PARM @V4075A2 00919000 ***************************************************************@V4075A2 00920000 QCHECK CLC PLIST2(L'QUERY),QUERY IS THIS '?' @V4075A2 00921000 BE SHOWPRSW YES - GO DISPLAY PRT SW STATUS @V4075A2 00922000 FENCECHK CLC PLIST2,FENCE IS THERE A SECOND PARM ? @V4075A2 00923000 BE RESUBCOM NO GO RESUBMIT THE LAST SUBC. @V4075A2 00924000 ***************************************************************@V4075A2 00925000 * NOW CHECK FOR 'CLOSE' OR ITS TRUNCATION @V4075A2 00926000 ***************************************************************@V4075A2 00927000 LA R2,PLIST2+L'CLOSE-ONE PLIST OFFERING @V4075A2 00928000 LA R3,CLOSE+L'CLOSE-ONE AND THE TARGET @V4075A2 00929000 LA R4,L'CLOSE AND THE NUMBER OF BYTES @V4075A2 00930000 BAL R10,PCOMP GO TEST TRUNCATIONS @V4075A2 00931000 B PPCHECK NOT CLOSE - MAY BE 'PRINT PRINT' @V4075A2 00932000 ***************************************************************@V4075A2 00933000 * MUST BE A CLOSE - CLOSE THE PRT THEN GO INTO @V4075A2 00934000 * THE 'TURN PRINT OFF' SEQUENCE. @V4075A2 00935000 ***************************************************************@V4075A2 00936000 BAL R10,CLOSEPRT @V4075A2 00937000 B REREADY RETURN @V4075A2 00938000 PRINTOFF MVI PRINTSW,TURNOFF TURN IT OFF @V4075A2 00939000 B REREADY GO WRITE THE READY MSG @V4075A2 00940000 PRINTON MVI PRINTSW,TURNON SET IT ON @V4075A2 00941000 B REREADY GO READY MSG @V4075A2 00942000 SHOWPRSW CLI PRINTSW,TURNON IS PRINT ON ? @V4075A2 00943000 BE SHOWON YES - GO SHOW STATUS @V4075A2 00944000 LA R8,PRINTOFM NO ITS 'OFF' - WRITE 'OFF' MSG @V4075A2 00945000 LA R9,L'PRINTOFM AND THE LENGTH @V4075A2 00946000 BAL R10,WRTERM AND GO WRITE IT. @V4075A2 00947000 B REREADY AND GO BACK @V4075A2 00948000 SHOWON LA R8,PRINTONM GET 'PRINT ON' MSG @V4075A2 00949000 LA R9,L'PRINTONM AND ITS LENGTH @V4075A2 00950000 BAL R10,WRTERM AND WRITE IT @V4075A2 00951000 B REREADY AND RETURN @V4075A2 00952000 ***************************************************************@V4075A2 00953000 * IT WAS NOT A 'CLOSE' COMMAND - TREAT IT @V4075A2 00954000 * AS A SUBCOMMAND. MOVE THE SUBCOMMAND PORTION @V4075A2 00955000 * INTO THE INPUT LINE, COUNT THE BYTES, AND @V4075A2 00956000 * PASS IT AS A NEW INPUT LINE. @V4075A2 00957000 * IF PRINT IS ON - COOL - IF NOT - TURN IT ON @V4075A2 00958000 * FOR 1 PASS AND INDICATE A SUBC. WAS ENTERED @V4075A2 00959000 ***************************************************************@V4075A2 00960000 PPCHECK CLC PLIST2(ONE),PRINT 'PRINT PRINT' IS INVALID @V4075A2 00961000 BE NOTKNOWN GO SEND IT BACK TO USER @V4075A2 00962000 SUBCOM CLI PRINTSW,TURNON IS PRINT ON ? @V4075A2 00963000 BE PLISTMOV YES - OK - GO MOVE THE PLIST @V4075A2 00964000 MVI PRINTSW,TURNON NO - SO TURN IT ON FOR 1 SHOT @V4075A2 00965000 MVI PRINTONE,SUBCOMM SET THE ONE-SHOT-W-SUBC. FLAG @V4075A2 00966000 PLISTMOV MVC INSAVE,BLANKOUT CLEAR INPUT SAVE @V4075A2 00967000 MVC INSAVE,INPUT SAVE OLD INPUT LINE @V4075A2 00968000 MVC OLDINLEN,INLENGTH AND LENGTH @V4075A2 00969000 MVC INPUT,BLANKOUT CLEAR THE INPUT LINE @V4075A2 00970000 LA R2,NULL CLEAR COUNTER @V4075A2 00971000 LA R3,PLIST2 POINT TO SUB IN PLIST @V4075A2 00972000 LA R4,INPUT AND INPUT LINE TOMOVE IT TO @V4075A2 00973000 MOVEDWD MVC 0(L'PLIST1,R4),0(R3) AND MOVE A DOUBLE WORD @V4075A2 00974000 LA R2,L'PLIST+1(R2) COUNT 9 BYTES @V4075A2 00975000 LA R3,L'PLIST1(R3) AND THE FROM POINTER @V4075A2 00976000 LA R4,L'PLIST1+1(R4) BUMP THE 'TO' POINTER @V4075A2 00977000 CLC FENCE,0(R3) END OF PLIST ? @V4075A2 00978000 BE COUNTIN IF SO GO SET LENGTH @V4075A2 00979000 B MOVEDWD ELSE GET THE NEXT @V4075A2 00980000 COUNTIN ST R2,INLENGTH SAVE THE NEW LENGTH @V4075A2 00981000 B REINCHK PASS IT OFF AS I/P LINE @V4075A2 00982000 ***************************************************************@V4075A2 00983000 * NO SECOND PARM WAS FOUND - RESUBMIT THE PREVIOUS @V4075A2 00984000 * COMMAND, TURNING PRINT ON AND OFF IF APPROPRIATE. @V4075A2 00985000 ***************************************************************@V4075A2 00986000 RESUBCOM CLI PRINTSW,TURNON IS PRINT ON ? @V4075A2 00987000 BE RESUB YES LEAVE IT ON @V4075A2 00988000 MVI PRINTSW,TURNON NO - TURN IT ON FOR THIS SUBC. @V4075A2 00989000 MVI PRINTONE,NOSUBC SET FLAG TO TURN IT OFF AFTER. @V4075A2 00990000 RESUB MVC INPUT,BLANKOUT CLEAR THE INPUT LINE AND @V4075A2 00991000 MVC INPUT,INSAVE RESTORE THE SAVED PREVIOUS SUBC. @V4075A2 00992000 MVC INLENGTH,OLDINLEN AND ITS INPUT LENGTH, AND @V4075A2 00993000 L R2,INLENGTH SET UP R2 FOR TOKENIZER. @V4075A2 00994000 B REINCHK AND SEND IT OUT AS A COMMAND. @V4075A2 00995000 * * * * * * * *------- -------- -------- -------- -------* 00996000 * * * * * * * * MOD SET UP 00997000 * * * * * * * * ------- -------- -------- ------- * 00998000 GOMOD CLC DMKQ,INPUT IS IT AN ADDRESS LOCATE? @VA04250 00999000 BE GOMOD1 NO - CHECK FOR A NULL PARM HRC001DM 01000190 CLC HDKQ,INPUT IS IT AN ADDRESS LOCATE? HRC001DM 01000380 BNE GONULLCK NO - CHECK FOR A NULL PARM HRC001DM 01000570 GOMOD1 EQU * HRC001DM 01000760 BAL R10,NULLCHK3 YES - CHECK NO THIRD PARM @VA04250 01001000 BAL R10,ADLENGTH NOW - CHECK ADDRESS LENGTH @VA04250 01002000 B LOADPLST AND SET UP PLIST @VA04250 01003000 GONULLCK BAL R10,NULLCHK2 CHECK FOR NO EXTRA PARM @VA04250 01004000 LOADPLST LA R2,PLIST PLIST ADDRESS TO PASS TO MOD @VA04250 01005000 L R15,MODADD MOD ADDRESS @VA04250 01006000 BALR R14,R15 GO @VA04250 01007000 LTR R15,R15 TEST @VA04250 01008000 BZ READY OK - @VA04250 01009000 B CODECHEK NO - HOW BAD? @VA04250 01010000 * * * * * * * * ------- -------- -------- ------- * 01011000 * * * * * * * * IOBLOK FUNCTION 01012000 * * * * * * * * ------- -------- -------- ------- * 01013000 GOIOB BAL R10,CLEAR CLEAR TO TOP OF SCREEN @VA04250 01014000 CLI PLIST+CUUBLANK,BLANK MUST BE MAX 3 'CUU' CHARS @VA04250 01015000 BNE NOTKNOWN MORE THAN THREE - WARN HIM @VA04250 01016000 L R15,IOBADD OK - GO TO IOBLOK ROUTINE @VA04250 01017000 LA R2,PLIST PLIST FOR IOB @VA04250 01018000 BALR R14,R15 LINK @VA04250 01019000 LTR R15,R15 TEST RETURN CODE @VA04250 01020000 BZ REREADY GO AGAIN @VA04250 01021000 B CODECHEK FIND OUT HOW BAD @VA04250 01022000 * * * * * * * * ------- -------- -------- ------- * 01023000 * * * * * * * * DISPLAY HEXLOC - NO LENGTH 01024000 * * * * * * * * IMPLIES A FULL SCREEN WRITE 01025000 * * * * * * * * ------- -------- -------- ------- * 01026000 GOFEX LA R2,PLIST PASS PARM LIST @VA04250 01027000 L R15,FEXADD EXAMINE ADDRESS @VA04250 01028000 BALR R14,R15 GO @VA04250 01029000 LTR R15,R15 RET CODE OK? @VA04250 01030000 BZ READY YES - CONTINUE @VA04250 01031000 B CODECHEK GO TEST THE RET CODE @VA04250 01032000 * * * * * * * * ------- -------- -------- ------- * 01033000 * * * * * * * * COMMON BAL TO INTERPRET 01034000 * * * * * * * * ------- -------- -------- ------- * 01035000 GOINT L R15,INTADD ADDRESS OF TRANS ROUTINE @VA04250 01036000 BALR R14,R15 LINK @VA04250 01037000 LTR R15,R15 BAD? @VA04250 01038000 BNZ CODECHEK HOW BAD? @VA04250 01039000 BR R10 RETURN @VA04250 01040000 * * * * * * * * ------- -------- -------- ------- * 01041000 * * * * * * * * COMMON WRTERM 01042000 * * * * * * * * ------- -------- -------- ------- * 01043000 WRTERM ST R8,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 01044000 ST R9,PARMLIS2 AND TEXT LENGTH @V4075A2 01045000 LA R1,PARMLIS1 POINTER TO PASS @V4075A2 01046000 L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER@V4075A2 01047000 BALR R14,R15 GO WRITE THE LINE @V4075A2 01048000 BR R10 AND RETURN @V4075A2 01049000 PARMLIS1 DS F PARM1 @V4075A2 01050000 PARMLIS2 DS F PARM2 @V4075A2 01051000 FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 01052000 * * * * * * * * ------- -------- -------- ------- * 01053000 * * * * * * * * CHECK SUBROUTINE RETURN CODES 01054000 * * * * * * * * ------- -------- -------- ------- * 01055000 CODECHEK C R15,CODE4 CAN WE GO ON @VA04250 01056000 BE REREADY YES @VA04250 01057000 ST R15,RETCODE PASS RETURN @VA04250 01058000 B RETURNER GET OUT - DONT CLEAR SCREEN @VA04250 01059000 * * * * * * * * ------- -------- -------- ------- * 01060000 * * * * * * * * COMMON RDTERM 01061000 * * * * * * * * ------- -------- -------- ------- * 01062000 RDTERM RDTERM (R8) COMMON READ FROM CONSOLE @VA04250 01063000 BR R10 RETURN @VA04250 01064000 * * * * * * * * ------- -------- -------- ------- * 01065000 * * * * * * * * THE PLAN IS TO COMPARE THE RIGHTMOST LETTERS 01066000 * * * * * * * * OF THE PLIST AND THE TARGET WORD, THEN MOVE 01067000 * * * * * * * * THE COMPARE ONE BYTE LEFT UNTIL EITHER 01068000 * * * * * * * * WE COUNT THEM ALL, IN WHICH CASE THEY 01069000 * * * * * * * * MATCH ENTIRELY, OR THERE IS A 'NO-MATCH'. 01070000 * * * * * * * * IF THEY DO NOT MATCH, BUT THE PLIST IS A 01071000 * * * * * * * * BLANK, CONTINUE THE SEARCH. IF NOT - ABORT. 01072000 * * * * * * * * ------- -------- -------- ------- * 01073000 PCOMP CLC 0(CHARLEN,R2),0(R3) COMPARE RIGHTMOST BYTES @VA04250 01074000 BE PCOUNT GOOD - TRY NEXT @VA04250 01075000 B PBLANKCK NO - BUT ITS OK IF ITS A BLANK @VA04250 01076000 PCOUNT BCTR R2,R0 BACK UP PLIST POINTER @VA04250 01077000 BCTR R3,R0 BACK UP TARGET POINTER @VA04250 01078000 BCT R4,PCOMP TRY ANOTHER @VA04250 01079000 B GOODRET(R10) ALL GOOD - TAKE THE GOOD EXIT @VA04250 01080000 PBLANKCK CLI 0(R2),BLANK WAS IT A BLANK @VA04250 01081000 BE PCOUNT YES - OK @VA04250 01082000 CLI 0(R2),U WAS IT A 'U' - AS IN SCROLLU? @VA04250 01083000 BE SCRCHECK IT WAS A 'U' _ WAS IT A SCROLL? @VA04250 01084000 BR R10 NO - BAD MATCH - RETURN @VA04250 01085000 SCRCHECK CLI PLIST,S DOES PLIST HAVE AN 'S'? @VA04250 01086000 BE PCOUNT YES IT DOES - LET IT CONTINUE @VA04250 01087000 BR R10 NO - BAD RETURN @VA04250 01088000 * * * * * * * *------- -------- -------- -------- ------* 01089000 * * * * * * * * NOW THE INPUT LINE MUST BE TOKENIZED 01090000 * * * * * * * * PASS THE INPUT LINE LENGTH IN R2 01091000 * * * * * * * *------- -------- -------- -------- ------* 01092000 TOKEN LA R3,INPUT INPUT LINE ADDRESS @VA04250 01093000 LA R4,PLIST TOKENIZED OUTPUT @VA04250 01094000 LA R5,L'PLIST1 COUNT 8 BYTES @VA04250 01095000 LA R6,PLIST7 SET PLIST LIMIT @VA04250 01096000 SIGSCAN CLI 0(R3),BLANK SCAN INPUT FOR NON-BLANK @V4075A2 01097000 BE CHARSRCH STILL BLANK - KEEP ON. @VA04250 01098000 MOVE8 MVC 0(L'PLIST1,R4),0(R3) GOT A CHAR, MOVE 8 IN @VA04250 01099000 BUMPA LA R3,ONE(R3) BUMP INPUT @VA04250 01100000 BCT R2,OVER8 END OF INPUT? @VA04250 01101000 B OUT YES - WRAP IT UP. @VA04250 01102000 OVER8 BCT R5,BLANKA NO - OVER 8 BYTES? @VA04250 01103000 B BLANKB TRY NEXT CHARACTER @VA04250 01104000 BUMPB LA R3,ONE(R3) BUMP INPUT @VA04250 01105000 BCT R2,BLANKB END OF INPUT ? @VA04250 01106000 B OUT WRAP UP. @VA04250 01107000 BLANKB TM 0(R3),DELIM DELIMITER @VA04250 01108000 BNZ BUMPB NO - GET NEXT CHAR @VA04250 01109000 BUMPC LA R3,ONE(R3) UP IT AGAIN @VA04250 01110000 BCT R2,BLANKC END OF INPUT ? @VA04250 01111000 B OUT YES QUIT @VA04250 01112000 BLANKC TM 0(R3),DELIM DELIMITER IN INPUT ? @VA04250 01113000 BZ BUMPC YES - KEEP LOOKING @VA04250 01114000 SRL R4,3 ROUND PLIST PTR DOWN TO @VA04250 01115000 SLL R4,3 PREVIOUS D'WORD, AND @VA04250 01116000 AH R4,X8 ADD 8, FOR NEXT PLIST SLOT @VA04250 01117000 CR R4,R6 END OF PLIST? @VA04250 01118000 BNL FENCER YES - CHOP IT OFF @VA04250 01119000 LA R5,L'PLIST1 RESET BYTE COUNTER @VA04250 01120000 B MOVE8 GO TAKE ANOTHER TOKE @VA04250 01121000 CHARSRCH LA R3,ONE(R3) SCAN FOR FIRST CHAR ON INLINE @VA04250 01122000 BCT R2,SIGSCAN TRY NEXT IF NOT END OF LINE @V4075A2 01123000 B FENCER THIS LINE WAS ALL BLANKS @VA04250 01124000 BLANKA TM 0(R3),DELIM INPUT CHAR A DELIMITER (4X) @VA04250 01125000 BNZ BUMPA NO - KEEP LOOKING @VA04250 01126000 LA R7,L'PLIST1 SET UP TO CLEAR PLIST ENTRY @VA04250 01127000 SR R7,R5 COUNT VALID BYTES TO BE LEFT @VA04250 01128000 AR R4,R7 AND ADD TO R4 @VA04250 01129000 MVC 0(SEVENBYT,R4),BLANKS BLANK IT OUT @VA04250 01130000 B BUMPC SCAN TO END OF BLANKS @VA04250 01131000 OUT SRL R4,3 POINT TO NEXT PLIST SLOT @VA04250 01132000 SLL R4,3 @VA04250 01133000 AH R4,X8 BUMP BY EIGHT @VA04250 01134000 FENCER MVC 0(L'FENCE,R4),FENCE FENCE IT IN @VA04250 01135000 BR R10 RETURN @V4075A2 01136000 * * * * * * * * ------- -------- -------- ------- * 01137000 * * * * * * * * THIS TRANSLATES THE ERROR CODE IN R15, 01138000 * * * * * * * * AND PLUGS IT INTO THE TEXT OF THE ERROR 01139000 * * * * * * * * MESSAGE, ALONG WITH THE FILE ID 01140000 * * * * * * * *------- -------- -------- -------- ------* 01141000 STATERR XC DEPACK(L'DEPACK+L'DECODE),DEPACK CLEAR WORKAREA @VA04250 01142000 LR R6,R15 SAVE R15 ACROSS WRTERM @VA04250 01143000 C R6,NOFILE WAS IT A 'FILE NOT FOUND' ? @VA04250 01144000 BNE NOMSG IF NOT - BYPASS 'DUMP NOT FOUND' @VA04250 01145000 LA R8,NOFILMSG ADDRESS OF MESSAGE @VA04250 01146000 LA R9,L'NOFILMSG AND LENGTH @VA04250 01147000 BAL R10,WRTERM WRITE 'DUMP NOT FOUND' @VA04250 01148000 NOMSG CVD R6,DECODE GET RET CODE IN DECIMAL @VA04250 01149000 UNPK DEPACK+FIV(L'DEPACK-FIV),DECODE+SIX(L'DECODE-SIX) 01150000 OI DEPACK+SEV,NUMZONE FIX UP SIGN TO PRINT @VA04250 01151000 MVC ERRMSGCD,DEPACK+FIV PLUG ERROR CODEINTO MSG @VA04250 01152000 MVC ERRMSGFN,DUMPFSCB+FN PLUG FILE NAME @VA04250 01153000 MVC ERRMSGFT,DUMPFSCB+FT AND TYPE @VA04250 01154000 MVC ERRMSGM,DUMPFSCB+FM AND MODE @VA04250 01155000 LA R8,ERMSG719 ADDRESS @VA04250 01156000 LA R9,E719L AND LENGTH @VA04250 01157000 BAL R10,WRTERM WRITE 'DUMP NOT FOUND' @VA04250 01158000 B REREAD GET ANOTHER DUMP - DONT CLEAR HRC001DM 01159490 * * * * * * * *------- -------- -------- -------- ------* 01160000 * * * * * * * * THIS CHECKS THE INPUT LINE FOR 01161000 * * * * * * * * HELP OR EXIT REQUESTS 01162000 * * * * * * * *------- -------- -------- -------- ------* 01163000 INCHECK CLC HELP,INPUT HELP? @VA04250 01164000 BE REINFO YES - GO SHOW HELP PAGE @VA04250 01165000 CLC HX,INPUT HALT EX. @VA04250 01166000 BE RETURN SHUT DOWN @VA04250 01167000 CLC QUIT,INPUT QUIT @VA04250 01168000 BE RETURN SHUT DOWN @VA04250 01169000 CLC END,INPUT END @VA04250 01170000 BE RETURN SHUT DOWN @VA04250 01171000 BR R10 RETURN @V4075A2 01172000 * * * * * * * *------- -------- -------- -------- ------* 01173000 * * * * * * * * THIS DISPLAYS THE 'HELP' INFORMATION' 01174000 * * * * * * * *------- -------- -------- -------- ------* 01175000 REINFO CLI TYPEFLAG,TYPER TYPEWRITER? @VA04250 01176000 BNE SCRNHELP NO - GO SCREEN 'HELP' MSG @VA04250 01177000 L R8,INFOADD1 ADDRESS OF START OF 'HELP' PAGE @VA04250 01178000 LA R4,LINECNT SET UP LINE COUNT - 43 LINES @VA04250 01179000 LA R9,LINELEN LENGTH - 80 BYTES @VA04250 01180000 NEXTLINE BAL R10,WRTERM WRITE A LINE OF 'HELP' PAGE @VA04250 01181000 LA R8,LINELEN(R8) POINT TO NEXT LINE @VA04250 01182000 BCT R4,NEXTLINE KEEP GOING @VA04250 01183000 B ENTER GO BACK @VA04250 01184000 * * * * * * * * ------- -------- -------- ------- * 01185000 * * * * * * * * THIS WRITES THE HELP PAGE ON 01186000 * * * * * * * * A 3270 SCREEN 01187000 * * * * * * * * ------- -------- -------- ------- * 01188000 SCRNHELP L R4,CONSOLE VIRT CONS ADDRESS @VA04250 01189000 CLI PAGESW,PAGE1 WHICH PAGE NEXT? @VA04250 01190000 BE WRITE1 GO WRITE PAGE1 @VA04250 01191000 MVI PAGESW,PAGE1 RESET SWITCH @VA04250 01192000 L R3,INFOADD2 GET SET TO WRITE PAGE2 @VA04250 01193000 B CCWSETUP GO PLUG ADDRESSES IN DIAGNOSE @VA04250 01194000 WRITE1 MVI PAGESW,PAGE2 SETUP FOR PAGE 2 @VA04250 01195000 L R3,INFOADD1 WRITE PAGE1 @VA04250 01196000 CCWSETUP ST R3,CCWA PLUG ADDRESS IN CCWA @VA04250 01197000 ST R3,CCWB AND CCWB @VA04250 01198000 LA R3,CCWA CCW ADDRESS @VA04250 01199000 MVI CCWA,CMDCODE RESTORE COMMAND CODE IN A @VA04250 01200000 MVI CCWB,CMDCODE AND B @VA04250 01201000 MVI CCWA+FIV,ERASE 'ERASE' CONTROL BYTE @VA04250 01202000 ST R3,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 01203000 ST R4,PARMLIS2 AND TEXT LENGTH @V4075A2 01204000 LA R1,PARMLIS1 POINTER TO PASS @V4075A2 01205000 L R15,DIRLNADD ADDRESS OF DMMDIRLN SCREEN WRITER@V4075A2 01206000 BALR R14,R15 GO WRITE THE SCREEN @V4075A2 01207000 B HELPINCK AND RETURN @V4075A2 01208000 DIRLNADD DC V(DMMDIRLN) SCREEN WRITER ROUTINE @V4075A2 01209000 HELPINCK BAL R10,RDTERM GO READ REPLY TO THE HELP PROMPT @V4075A2 01210000 BAL R10,INCHECK SEE IF HE WANTS OUT, OR MORE HELP@V4075A2 01211000 MVI PAGESW,PAGE1 RESET TO PAGE 1 @V4075A2 01212000 CLI DUMPFSCB+FNEND,NULLDUMP SEE IF DUMP NUMB YET @V4075A2 01213000 BE GETDUMP NO - GO GET IT HRC001DM 01214490 BAL R10,CLEAR TOP OF THE SCREEN @V4075A2 01215000 B REREADY YES - CONTINUE @V4075A2 01216000 * * * * * * * * ------- -------- -------- ------- * 01217000 * * * * * * * * SET DIFFERENT ???????? CHAR 01218000 * * * * * * * * ------- -------- -------- ------- * 01219000 INQUIRY MVC HUH,PLIST2 MOVE IN 'HUH?' CHAR @VA04250 01220000 B REREADY READY MSG @VA04250 01221000 * * * * * * * * ------- -------- -------- ------- * 01222000 * * * * * * * * DISPLAY LAST COMMAND 01223000 * * * * * * * * ------- -------- -------- ------- * 01224000 POSTIN BAL R10,NULLCHK2 CHECK FOR NO SECOND TERM @VA04250 01225000 LA R8,INSAVE ADDRESS AND @VA04250 01226000 L R9,OLDINLEN LENGTH OF OLD INPUT LINE @VA04250 01227000 BAL R10,WRTERM WRITE THE OLD INPUT LINE @VA04250 01228000 B REREADY ROUND AGAIN @VA04250 01229000 * * * * * * * * ------- -------- -------- ------- * 01230000 * * * * * * * * THIS CLEARS THE 3270 SCREEN AND ALLOWS 01231000 * * * * * * * * THE NEXT OPERATION TO BE POSITIONED 01232000 * * * * * * * * AT THE TOP THEREOF. 01233000 * * * * * * * *------- -------- -------- -------- ------* 01234000 CLEAR STM R7,R9,SAVCLR SAVE REGS @VA04250 01235000 ***************************************************************@V4075A2 01236000 * DONT CLEAR THE SCREEN IF THIS IS A 1-SHOT-NO-SUBC @V4075A2 01237000 ***************************************************************@V4075A2 01238000 CLI PRINTONE,NOSUBC IS THIS A RESUBMIT ? @V4075A2 01239000 BE ALLCLEAR YES - DONT CLEAR SCREEN @V4075A2 01240000 L R8,SCRNADD GET THE ADDRESS OF THE SCREEN @VA04250 01241000 ST R8,CCWC PLUG ADDRESS IN CCW @VA04250 01242000 LA R8,CCWC CCW ADD @VA04250 01243000 L R9,CONSOLE VIRT CONS ADDRESS @VA04250 01244000 MVI CCWC,CMDCODE RESTORE CMD CODE @VA04250 01245000 MVI CCWC+FIV,ERASE SET ERASE BYTE @VA04250 01246000 DIAG WAITT WAIT FOR TERMINAL TO QUIESCE @VA04250 01247000 DC X'83890058' DIAGNOSE @VA04250 01248000 ALLCLEAR LM R7,R9,SAVCLR RESTORE REGS @VA04250 01249000 BR R10 RETURN @VA04250 01250000 * * * * * * * * ------- -------- -------- ------- * 01251000 * * * * * * * * THIS CHECKS THAT THOSE COMMANDS 01252000 * * * * * * * * WHICH SHOULD HAVE NO OPERANDS 01253000 * * * * * * * * DO IN FACT HAVE NONE - EXCEPT 01254000 * * * * * * * * THE 'U' AFTER SCROLL 01255000 * * * * * * * * ------- -------- -------- ------- * 01256000 NULLCHK2 CLC FENCE,PLIST2 IS THERE A SECOND PARM? @VA04250 01257000 BER R10 OK - RETURN @VA04250 01258000 CLI PLIST2,U YES - IS IT A 'U' @VA04250 01259000 BER R10 OK - RETURN @VA04250 01260000 B NOTKNOWN NO - INVALID - TOSS IT OUT @VA04250 01261000 * * * * * * * * ------- -------- -------- ------- * 01262000 * * * * * * * * THIS CHECKS THAT THOSE COMMANDS 01263000 * * * * * * * * WHICH SHOULD HAVE ONLY TWO TERMS 01264000 * * * * * * * * DO IN FACT HAVE NO MORE. 01265000 * * * * * * * * 'T' MAY HAVE 1 OR 2 TERMS. SEE NEXT COMMENTS 01266000 * * * * * * * * ------- -------- -------- ------- * 01267000 NULLCHK3 CLC FENCE,PLIST3 IS THERE A THIRD PARM? @VA04250 01268000 BER R10 NO - OK TO RETURN @VA04250 01269000 CLC FENCE,PLIST2 P3 COULD BE TRASH. FENCE HERE? @VA04250 01270000 BER R10 GOOD GUESS - OK TO GO ON @VA04250 01271000 B NOTKNOWN YES - THROW IT BACK @VA04250 01272000 * * * * * * * * ------- -------- -------- ------- * 01273000 * * * * * * * * THIS CHECKS THAT THOSE COMMANDS 01274000 * * * * * * * * WHICH SHOULD HAVE ONLY THREE TERMS 01275000 * * * * * * * * DO IN FACT HAVE NO MORE. 01276000 * * * * * * * * 'D' AND 'VIO' MAY HAVE 2 OR 3 TERMS. 01277000 * * * * * * * * IN THIS CASE THE FIRST TEST WILL NOT 01278000 * * * * * * * * FIND THE X'FF..' IT EXPECTS. 01279000 * * * * * * * * ------- -------- -------- ------- * 01280000 NULLCHK4 CLC FENCE,PLIST4 IS THERE A FOURTH PARM? @VA04250 01281000 BER R10 NO - OK TO RETURN @VA04250 01282000 CLC FENCE,PLIST3 P4 COULD BE TRASH. FENCE IN P3? @VA04250 01283000 BER R10 SURE - OK TO RETURN @VA04250 01284000 B NOTKNOWN YES - THROW IT BACK @VA04250 01285000 * * * * * * * * ------- -------- -------- ------- * 01286000 * * * * * * * * THIS CHECKS THAT THOSE COMMANDS 01287000 * * * * * * * * WHICH SHOULD HAVE ONLY FOUR TERMS 01288000 * * * * * * * * DO IN FACT HAVE NO MORE. 01289000 * * * * * * * * ------- -------- -------- ------- * 01290000 NULLCHK5 CLC FENCE,PLIST5 IS THERE A FIFTH PARM? @VA04250 01291000 BER R10 NO - OK TO RETURN @VA04250 01292000 B NOTKNOWN YES - THROW IT BACK @VA04250 01293000 * * * * * * * * ------- -------- -------- ------- * @V4075A2 01294000 * * * * * * * * THIS CHECKS THAT THE LOCATE COMMAND @V4075A2 01295000 * * * * * * * * WHICH SHOULD HAVE ONLY FOUR OR FIVE @V4075A2 01296000 * * * * * * * * PARMS DOES IN FACT HAVE NO MORE. @V4075A2 01297000 * * * * * * * * IN THIS CASE THE FIRST TEST MAY NOT @V4075A2 01298000 * * * * * * * * FIND THE X'FF..' IT EXPECTS. @V4075A2 01299000 * * * * * * * * ------- -------- -------- ------- * @V4075A2 01300000 NULLCHK6 CLC FENCE,PLIST6 IS THERE A SIXTH PARM? @V4075A2 01301000 BER R10 NO - OK TO RETURN @V4075A2 01302000 CLC FENCE,PLIST5 P6 COULD BE TRASH. FENCE IN P5? @V4075A2 01303000 BER R10 SURE - OK TO RETURN @V4075A2 01304000 B NOTKNOWN YES - THROW IT BACK @V4075A2 01305000 * * * * * * * * ------- -------- -------- ------- * 01306000 * * * * * * * * FOR THE ROUTINES DMMFED AND DMMFEX, 01307000 * * * * * * * * THIS CHECKS THAT ONLY SIX BYTES 01308000 * * * * * * * * OF ADDRESS ARE PASSED, UNLESS 01309000 * * * * * * * * THE EXTRA BYTES ARE LEADING ZEROS. 01310000 * * * * * * * * ------- -------- -------- ------- * 01311000 ADLENGTH LA R2,PLIST2 POINT TO LEFT CHAR OF ADDRESS @VA04250 01312000 LA R3,PLIST3 LIMIT FOR SEARCH @VA04250 01313000 LA R4,NULL ADDRESS BYTE COUNTER @VA04250 01314000 CLI 0(R2),T IS IT A 'T' @VA04250 01315000 BNE PCENT GO CHECK PERCENT @VA04250 01316000 CHEKNEXT LA R2,ONE(R2) NEXT CHARACTER @VA04250 01317000 CR R2,R3 OFF THE END? @VA04250 01318000 BNL CHECK7 YES - CHECK THE COUNT @VA04250 01319000 PCENT CLI 0(R2),PC IS THIS A '%' @VA04250 01320000 BE CONCAT YES -GO MAKE CONCAT CHECK @VA04250 01321000 CLI 0(R2),BLANK THEN IS IT A BLANK? @VA04250 01322000 BE CHECK7 YES LAST OF THE BIG TIME CHARS @VA04250 01323000 LA R4,ONE(R4) NO - BUMP COUNT @VA04250 01324000 B CHEKNEXT GO TRY THE NEXT CHAR @VA04250 01325000 CONCAT LA R2,ONE(R2) BUMP POINTER @VA04250 01326000 CR R2,R3 OFF THE END @VA04250 01327000 BNL ADLEND YES - OK - RETURN @VA04250 01328000 CLI 0(R2),BLANK THEN IS IT A BLANK? @VA04250 01329000 BNE NOTKNOWN NO - BAD - QUIT @VA04250 01330000 B ADLEND YES - THAS OK - RETURN @VA04250 01331000 * * * * * * * * ------- -------- -------- ------- * 01332000 * * * * * * * * NOW WE HAVE COUNTED THE ADDRESS BYTES 01333000 * * * * * * * * ------- -------- -------- ------- * 01334000 CHECK7 C R4,SEVEN COMPARE TO '7' @VA04250 01335000 BL ADLEND LOW - GOOD - RETURN @VA04250 01336000 BH CHECK8 GO TEST THE EIGHT BYTES @VA04250 01337000 LA R2,PLIST2 POINT TO START OF ADDRESS AGAIN @VA04250 01338000 CLI 0(R2),T IS IT A 'T' ? @VA04250 01339000 BNE ZEROCHEK NO - GO ZERO @VA04250 01340000 LA R2,ONE(R2) LOOK AT SECOND CHAR @VA04250 01341000 ZEROCHEK CLI 0(R2),ZERO THEN IT BETTER BE A ZERO @VA04250 01342000 BE ADLEND YES - OK - RETURN @VA04250 01343000 B NOTKNOWN NO - DONT LIKE IT @VA04250 01344000 CHECK8 LA R2,PLIST2 LOOK AT THE 1ST CHAR YET AGAIN @VA04250 01345000 CLI 0(R2),ZERO BE A ZERO @VA04250 01346000 BNE NOTKNOWN NOPE - OUT @VA04250 01347000 LA R2,ONE(R2) NEXT @VA04250 01348000 CLI 0(R2),ZERO ZERO ? @VA04250 01349000 BNE NOTKNOWN NO - BAD LUCK @VA04250 01350000 ADLEND BR R10 MADE IT THROUGH - RETURN @VA04250 01351000 * * * * * * * * ------- -------- -------- ------- * 01352000 * * * * * * * * THIS CHECKS THE LAST COMMAND. 01353000 * * * * * * * * IF IT IS LOCATE OR SCROLL IT MAY BE 01354000 * * * * * * * * REUSED IE. SCROLL AGAIN, ORCONTINUE 01355000 * * * * * * * * THE LOCATE FOR ANOTHER HIT. 01356000 * * * * * * * * ------- -------- -------- ------- * 01357000 REUSE CLC PLIST(CHARLEN),LOCATE LOCATE? @VA04250 01358000 BE RELOCATE YES SET IT UP @VA04250 01359000 CLC PLIST(CHARLEN),SCROLL SCROLL? @VA04250 01360000 BE RESCROLL SET IT UP @VA04250 01361000 B REREADY NEITHER - ROUND AGAIN @VA04250 01362000 * * * * * * * * ------- -------- -------- ------- * 01363000 * * * * * * * * FIRST THE LOCATE 01364000 * * * * * * * * ------- -------- -------- ------- * 01365000 * @V4075A2 01366000 * IN A RELOCATE THE NEW 'FROM' ADDRESS IS ROUNDED @V4075A2 01367000 * TO A QUAD-WORD BOUNDARY. IF THE USER HAD SPECIFIED @V4075A2 01368000 * OTHER THAN THIS FOR A PARTICULAR SEARCH, IT WOULD BE @V4075A2 01369000 * LOST ON THE SECOND AND SUBSEQUENT 'REUSE' OPERATIONS. @V4075A2 01370000 * THIS PICKS UP THAT PART OF THE OLD 'FROM' ADDRESS @V4075A2 01371000 * WHICH IS BELOW 16, AND ADDS IT INTO THE NEW 'FROM'. @V4075A2 01372000 ************************************************************** @V4075A2 01373000 RELOCATE LA R4,PLIST3 GET THE EXISTING 'FROM' @V4075A2 01374000 L R15,HEXADD ADDRESS OF TRANSLATE @V4075A2 01375000 BALR R14,R15 GO TRANSLATE @V4075A2 01376000 LTR R15,R15 HOW BAD WAS IT @V4075A2 01377000 BNZ CODECHEK IT WAS SOOO BAD.... @V4075A2 01378000 SLL R5,28 STRIP OFF ALL OVER 1 HALF BYTE @V4075A2 01379000 SRL R5,28 AND RESTORE THE CORRECT VALUE @V4075A2 01380000 L R2,HEXADADD ADDR OF THE LAST DISPLAY ADDRESS @V4075A2 01381000 L R2,0(R2) GET THE ADDRESS @VA04250 01382000 L R3,BOUNDADD GET THE POINTER TO THE INCREMENT @V4075A2 01383000 L R3,0(R3) AND GET THE INCREMENT @V4075A2 01384000 SRL R3,ONE RESTORE TO BYTES FROM H'WORDS @V4075A2 01385000 C R3,SIXTEEN IS THE INC GREATER THAN ONE LINE @V4075A2 01386000 BH ADDBOUND YES - USE THE BOUND PARAMETER @V4075A2 01387000 L R3,SIXTEEN NO - USE ONE LINE @V4075A2 01388000 ADDBOUND AR R2,R3 ADD TO THE 'FROM' ADDRESS @V4075A2 01389000 AR R2,R5 AND ADD ORIG LINE DISPLACEMENT @V4075A2 01390000 ST R2,NEWFROM STORE IT @VA04250 01391000 LA R3,XADDL LENGTH OF ADDRESS TO TRANSLATE @VA04250 01392000 LA R4,NEWFROM+ONE ADDRESS FOR TRANSLATE @VA04250 01393000 BAL R10,GOINT GO TRANSLATE @VA04250 01394000 MVC PLIST3,BLANKS SET PLIST TO BLANKS @VA04250 01395000 MVC PLIST3(SIXBYTES),0(R5) PLUG NEW ADDRESS @VA04250 01396000 ***************************************************************@V4075A2 01397000 * IF 'PRINT ' FOLLOWS A REUSE OF LOCATE, THE ORIGINAL @V4075A2 01398000 * 'FROM' ADDRESS FROM THE INPUT LINE IS USED @V4075A2 01399000 * AND DOES NOT REFLECT THE LATEST 'FROM'. THIS SAVES @V4075A2 01400000 * THE FROM ADDRESS TO REFLECT THE LATEST UPDATE @V4075A2 01401000 ***************************************************************@V4075A2 01402000 MVC NEWFREBC,PLIST3 SAVE THE UPDATED FROM ADDR @V4075A2 01403000 MVC INLENGTH,OLDINLEN FAKE UP INPUT LENGTH @VA04250 01404000 MVC INPUT,INSAVE AND INPUT LINE @VA04250 01405000 B GOLOCATE GO BACK TO LOCATE @VA04250 01406000 * * * * * * * * ------- -------- -------- ------- * 01407000 * * * * * * * * REUSE THE SCROLL 01408000 * * * * * * * * ------- -------- -------- ------- * 01409000 RESCROLL MVC INPUT,INSAVE REPLACE THE LAST INPUT LINE @VA04250 01410000 MVC INLENGTH,OLDINLEN AND LENGTH @VA04250 01411000 B GOSCROLL FOR CONSISTENCY - AND CONTINUE @VA04250 01412000 ***************************************************************@V4075A2 01413000 * THIS CLOSES THE PRINTER @V4075A2 01414000 ***************************************************************@V4075A2 01415000 CLOSEPRT LA R2,CLOSER @V4075A2 01416000 LA R3,L'CLOSER @V4075A2 01417000 DC X'83230008' CALL CP TO CLOSE PRINT FILE @V4075A2 01418000 BR R10 RETURN @V4075A2 01419000 * * * * * * * * ------- -------- -------- ------- * 01420000 * * * * * * * * RETURN 01421000 * * * * * * * * ------- -------- -------- ------- * 01422000 RETURN BAL R10,CLEAR CLEAR SCREEN FOR TERM MESSAGE @VA04250 01423000 BAL R10,CLOSEPRT GO SHUT DOWN PRINTER @V4075A2 01424000 LA R10,DUMPFSCB GET READY TO @VA04250 01425000 FSCLOSE FSCB=(R10) CLOSE THE DUMP FILE @VA04250 01426000 L R2,PBADDADD ADDRESS OF LOC BUFFER ADDRESS @V4075A2 01427000 L R2,0(R2) GET THE BUFFER ADDRESS @V4075A2 01428000 LTR R2,R2 ANY ADDRESS ? @V4075A2 01429000 BZ RETURNER NO - GET RIGHT OUT @V4075A2 01430000 LR R1,R2 YES - SET UP TO RETURN STORAGE @V4075A2 01431000 DMSFRET DWORDS=(1030),LOC=(1),ERR=FREEERR @V4075A2 01432000 RETURNER L R13,SAVEBACK CALLERS SAVE PTR @VA04250 01433000 MVC SAVREG15(L'RETCODE,R13),RETCODE RC FOR PICK UP @VA04250 01434000 LM R14,R12,SAVEDISP(R13) CALLERS REGS @VA04250 01435000 BR R14 RETURN @VA04250 01436000 * * * * * * * * ------- -------- -------- ------- * 01437000 * * * * * * * * CONSTANTS 01438000 * * * * * * * * ------- -------- -------- ------- * 01439000 CLOSER DC C'CLOSE PRT' @V4075A2 01440000 CODE4 DC F'4' ACCEPTABLE RETURN @VA04250 01441000 CODE8 DC F'8' NON DITTO @VA04250 01442000 SIXTEEN DC F'16' BUMP 'FROM' FOR 'RELOCATE' @VA04250 01443000 HUH DC CL16'????????' 'DONT RECOGNISE INPUT' @VA04250 01444000 INPUT DS CL150 READ FROM CONSOLE @VA04250 01445000 INSAVE DS CL150 INPUT SAVE AREA @VA04250 01446000 CMDINFO DC 80C' ' HEADER FOR SCREEN DISPLAY @VA04250 01447000 NOPARM DC XL15'40404040404040FFFFFFFFFFFFFFFF' ONLY 1CHAR @VA04250 01448000 PLIST DS 8D THE FAMOUS PARAMETER LIST @VA04250 01449000 ORG PLIST @VA04250 01450000 PLIST1 DS D FIRST PLIST PARAMETER @VA04250 01451000 PLIST2 DS D SECOND @VA04250 01452000 PLIST3 DS D THIRD @VA04250 01453000 PLIST4 DS D FOURTH @VA04250 01454000 PLIST5 DS D FIFTH @VA04250 01455000 PLIST6 DS D SIXTH @VA04250 01456000 PLIST7 DS D SEVENTH @VA04250 01457000 PLIST8 DS D EIGHTH @VA04250 01458000 * * * * * * * * ------- -------- -------- ------- * 01459000 * * * * * * * * SAVEAREA 01460000 * * * * * * * * ------- -------- -------- ------- * 01461000 SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 01462000 SAVEUSR DS F USER WORD @VA04250 01463000 SAVEFWD DS F FORWARD POINTER @VA04250 01464000 SAVEBACK DS F BACKWARD POINTER @VA04250 01465000 SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 01466000 SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 01467000 SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 01468000 SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 01469000 SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 01470000 SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 01471000 SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 01472000 SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 01473000 SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 01474000 SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 01475000 SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 01476000 SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 01477000 SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 01478000 SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 01479000 SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 01480000 INLENGTH DS F LENGTH OF LINE READ IN @VA04250 01481000 OLDINLEN DS F LENGTH OF PREVIOUS LINE @VA04250 01482000 NEWFROM DS F UPDATED 'FROM' FOR 'RELOCATE' @VA04250 01483000 NEWFREBC DC CL8' ' EBC FORM OF ABOVE @V4075A2 01484000 RETCODE DS F RETURN CODE @VA04250 01485000 CONSOLE DS F ADDRESS OF VIRTUAL CONS @VA04250 01486000 BLANKS DC CL8' ' BLANKS @VA04250 01487000 FENCE DC XL8'FFFFFFFFFFFFFFFF' END OF PLIST @VA04250 01488000 X8 DC H'8' PLIST INCREMENT @VA04250 01489000 TYPEFLAG DC X'00' TYPE OF TERMINAL @VA04250 01490000 QUERY DC XL2'6F40' '? ' FOR RESTATE INPUT @VA04250 01491000 PRINTSW DC X'00' PRINT SWITCH @V4075A2 01492000 ***************************************************************@V4075A2 01493000 * ONE-SHOT PRINT SW IS X'00' IF NOT IN A ONE SHOT @V4075A2 01494000 * PRINT SITUATION, SUCH AS PRINT ON, OR PRINT OFF AND @V4075A2 01495000 * NOT A PRINT COMMAND. IT IS X'0F' IF ONE-SHOT PRINT @V4075A2 01496000 * WITH DISPLAY SUPPRESSED, SUCH AS 'PRINT' AFTER @V4075A2 01497000 * A SUBCOMMAND - D 1234, @V4075A2 01498000 * AND X'FF' IF ONE SHOT WITH DISPLAY, SUCH AS @V4075A2 01499000 * PRINT D 1234. @V4075A2 01500000 ***************************************************************@V4075A2 01501000 PRINTONE DC X'00' ONE SHOT PRINT SWITCH. @V4075A2 01502000 * * * * * * * * ------- -------- -------- ------- * 01503000 TYPESAVE DS 0F RESULTS OF CONSOLE DIAGNOSE @VA04250 01504000 DS 1C DEV TYPE BYTE 1 @VA04250 01505000 TYPEREM DS 1C DEV TYPE BYTE 2 @VA04250 01506000 DS H UNUSED DEV TYPE BYTES @VA04250 01507000 * * * * * * * * ------- -------- -------- ------- * 01508000 SEVEN DC F'7' COUNT OF ADDRESS BYTES @VA04250 01509000 NOFILE DC F'28' FILE NOT FOUND RETCODE @VA04250 01510000 PAGESW DC X'01' PAGE SWITCH @VA04250 01511000 DUMPFSCB FSCB 'PRB0000X DUMP * ',BSIZE=4096 HRC001DM 01512490 NULL EQU X'00' TO ZERO A REG @VA04250 01513000 TYPER EQU X'FF' TYPEWRITER TYPE DEVICE @VA04250 01514000 HIBYTEST EQU X'F0' TEST FOR 3270 TYPE DISPLAY @VA09785 01514400 LOBYTEST EQU X'0F' TERMINALS @VA09785 01514800 NUMZONE EQU X'F0' ZONE FOR A NUMEROC CHARACTER @VA04250 01515000 CMDCODE EQU X'19' COMMAND CODE IN DIAGNOSE CCW @VA04250 01516000 ERASE EQU X'FF' ERASE CONTROL BYTE IN CCW @VA04250 01517000 BLANK EQU X'40' SIGNIFICANT CHARACTER COMPARE @VA04250 01518000 DELIM EQU X'B0' DELIMITER TEST - '4X' @VA04250 01519000 REC2 EQU X'02' RECORD #2 @VA04250 01520000 S EQU X'E2' S FOR SCROLL @VA04250 01521000 T EQU X'E3' LEADING 'T' @VA04250 01522000 U EQU X'E4' U FOR SCROLL 'U' @VA04250 01523000 NULLDUMP EQU X'E7' DUMP NOT INDICATED YET @V4075A2 01524000 PC EQU X'6C' PERCENT @VA04250 01525000 ZERO EQU X'F0' ZERO @VA04250 01526000 PAGE1 EQU X'01' PAGE1 SW @VA04250 01527000 PAGE2 EQU X'02' PAGE2 SW @VA04250 01528000 NOTRED EQU X'00' NOT READ STATUS @VA04250 01529000 CHARLEN EQU X'01' LENGTH OF ONE BYTE INPUT TEST @VA04250 01530000 TWOBYTES EQU X'02' TWO @VA04250 01531000 THREEBYT EQU X'03' THREE @VA04250 01532000 SIXBYTES EQU X'06' SIX @VA04250 01533000 SEVENBYT EQU X'07' SEVEN @VA04250 01534000 ONE EQU 1 COUNTER BUMPER @VA04250 01535000 XADDL EQU 3 LENGTH OF HEX ADDRESS @VA04250 01536000 VDEND EQU 4 END OF VALID INPUT @VA04250 01537000 GOODRET EQU 4 DISP TO GOOD RETURN ADDRESS @VA04250 01538000 FIV EQU 5 UNPACK DISP @VA04250 01539000 SIX EQU 6 UNPACK DISP @VA04250 01540000 SEV EQU 7 UNPACK DISP @VA04250 01541000 FN EQU 8 FILE NAME IN FSCB @VA04250 01542000 FSCBDNUM EQU 11 DUMP NUMBER @VA04250 01543000 CUUBLANK EQU 11 END OF 'CUU' IN PLIST @VA04250 01544000 SAVEDISP EQU 12 DISP. OF REGS IN SAVEAREA @VA04250 01545000 FNEND EQU 15 END OF FILE NAME @VA04250 01546000 FT EQU 16 FILE TYPE @VA04250 01547000 SAVREG15 EQU 16 DISP FOR REG15 IN SAVAREA @VA04250 01548000 FR EQU 22 FROM DISP. @VA04250 01549000 FM EQU 24 FILE MODE IN FSCB @VA04250 01550000 TO EQU 30 'TO' DISP @VA04250 01551000 LINECNT EQU 43 NUMBER OF LINES @VA04250 01552000 TRYDIAG EQU 50 NUMBER OF RETRIES FOR DIAGNOSE @VA04250 01553000 LINELEN EQU 80 LENGTH OF LINE @VA04250 01554000 ***************************************************************@V4075A2 01555000 * CONSTANTS FOR PRINT @V4075A2 01556000 ***************************************************************@V4075A2 01557000 OF DC CL8'OF' @V4075A2 01558000 OFF DC CL8'OFF' PRINT OFF PARM @V4075A2 01559000 ON DC CL8'ON' PRINT ON @V4075A2 01560000 PRT DC CL8'PRT' PRT ABBREV FOR PRINT @V4075A2 01561000 CLOSE DC CL6'CLOSE' CLOSE PARM OF PRINT SUBC. @V4075A2 01562000 PRINT DC CL6'PRINT' PRINT SUBCOMMAND @V4075A2 01563000 PRINTONM DC C'PRINT IS ON' POS. REPLY TO PRINT ? @V4075A2 01564000 PRINTOFM DC C'PRINT IS OFF' NEG REPLY TO PRINT ? @V4075A2 01565000 TURNON EQU X'FF' SWITCH ON VALUE @V4075A2 01566000 TURNOFF EQU X'00' SWITCH OFF VALUE @V4075A2 01567000 SUBCOMM EQU X'FF' ONE-SHOT PRINT W DISPLAY @V4075A2 01568000 NOSUBC EQU X'0F' ONE-SHOT PRINT - NO DISPLAY. @V4075A2 01569000 * * * * * * * *------- -------- -------- -------- ------* 01570000 * * * * * * * * CONSTANTS FOR RDERR 01571000 * * * * * * * *------- -------- -------- -------- ------* 01572000 DEPACK DS D UNPACKED RETCODE @VA04250 01573000 DECODE DS D DECIMAL RETCODE @VA04250 01574000 ERMSG719 DC C'DMMDSC719I ERROR ''' TEXT OF ERROR MESSAGE @VA04423 01575000 ERRMSGCD DC CL3' ' * @VA04250 01576000 ERRMSGT2 DC C''' IN FSSTATE. FILE ''' * @VA04250 01577000 ERRMSGFN DC CL8' ' * @VA04250 01578000 ERRMSFIL DC CL2' ' FILLER @VA04250 01579000 ERRMSGFT DC CL6' ' * @VA04250 01580000 ERRMSGF2 DC CL1' ' FILLER @VA04250 01581000 ERRMSGM DC CL2' ' * @VA04250 01582000 ERRMSGHK DC CL1'''' TRAILING HICKEY @VA04250 01583000 E719L EQU *-ERMSG719 * @VA04250 01584000 * * * * * * * * ------- -------- -------- ------- * 01585000 * * * * * * * * OTHER MESSAGES 01586000 * * * * * * * * ------- -------- -------- ------- * 01587000 EMSG7011 DC C'DMMDSC701R Please enter one of the following operands:*01588190 ' HRC001DM 01588380 EMSG7012 DC C' NNNNN < MODE > - To view PRBNNNNN from CMS *01588570 DISK ''MODE''' HRC001DM 01588760 EMSG7013 DC C' HELP - To request HELP informatio*01588950 n' HRC001DM 01589140 EMSG7014 DC C' END, QUIT, HX - To EXIT' HRC001DM 01589330 SHORTRDY DC C'*R' SHORT READY MSG @VA04250 01590000 READYMSG DC C'*** READY ***' REGULAR READY @VA04250 01591000 NOFILMSG DC C'DUMP NOT FOUND - CHECK NUMBER AND MODE' @VA04250 01592000 * * * * * * * *------- -------- -------- -------- ------* 01593000 * * * * * * * * CONSTANTS FOR INPUT CHECK ROUTINE * 01594000 * * * * * * * *------- -------- -------- -------- ------* 01595000 RIOBLOK DC CL8'RIOBLOK' REAL DEVICE TRACKING @VA04250 01596000 VIOBLOK DC CL8'VIOBLOK' VIRTUAL DEVICE TRACKING @VA04250 01597000 VMBLOK DC CL7'VMBLOK' SUMMARY OF USERIDS & STATUS @VA04250 01598000 SCROLL DC CL7'SCROLL' SCROLL @VA04250 01599000 LOCATE DC CL7'LOCATE' LOCATE A STRING @VA04250 01600000 TRACE DC CL6'TRACE' 'N' TRACE TABLE ENTRIES @VA04250 01601000 DISPLAY DC CL8'DISPLAY' DISPLAY REQUEST @VA04250 01602000 REGS DC CL5'REGS' CONTROL AND GENERAL REG REQUEST @VA04250 01603000 G DC CL2'G' GENERAL REG REQ. @VA04250 01604000 C DC CL2'C' CONTROL REG REQUEST @VA04250 01605000 XREGS DC CL6'XREGS' AREGS OR MREGS @V4075A2 01606000 A DC C'A' APREGS @V4075A2 01607000 M DC C'M' MREGS @V4075A2 01608000 EXAMINE DC CL2'X' ONE FULL SCREEN OF THE DUMP @VA04250 01609000 DMK DC CL3'DMK' MODULE OR ENTRY SEARCH @VA04250 01610000 HDK DC CL3'HDK' MODULE OR ENTRY SEARCH HRC001DM 01610500 DMKQ DC CL4'DMK?' ADDRESS LOCATE REQUEST @VA04250 01611000 HDKQ DC CL4'HDK?' ADDRESS LOCATE REQUEST HRC001DM 01611500 IREC DC CL2'I' DUMP INFORMATION RECORD (REC2) @VA04250 01612000 INVALID DC CL7'INVALID' SET 'UNRECOGNISABLE INPUT' FLAG @VA04250 01613000 ZEROS DC CL5'00000' TO RESET FSCB FILENAME @VA04250 01614000 * * * * * * * * ------- -------- -------- ------- * 01615000 * * * * * * * * CONSTANTS FOR INCHECK 01616000 * * * * * * * * ------- -------- -------- ------- * 01617000 HELP DC CL5'HELP' REQUEST FOR COMMAND SUMMARY @VA04250 01618000 HX DC CL3'HX' HALT EXECUTION @VA04250 01619000 QUIT DC CL5'QUIT' SAME @VA04250 01620000 END DC CL4'END' END @VA04250 01621000 BLANKOUT DC CL150' ' BLANKS TO CLEAR OUTPUT AREA @VA04830 01622000 * * * * * * * * ------- -------- -------- ------- * 01623000 * * * * * * * * CCWS FOR 'HELP' 01624000 * * * * * * * * ------- -------- -------- ------- * 01625000 CCWA CCW X'19',INFO1,X'60',1760 ERASE @VA04250 01626000 CCWB CCW X'19',INFO1,X'20',1760 WRITE @VA04250 01627000 * * * * * * * *------- -------- -------- -------- ------* 01628000 * * * * * * * * ADCONS 01629000 * * * * * * * *------- -------- -------- -------- ------* 01630000 DS 0F @VA04250 01631000 FEXADD DC AL4(DMMFEX) ADDRESS OF EXAMINE FETCH @VA04250 01632000 VMBADD DC AL4(DMMVMB) VMBLOK ROUTINE @VA04250 01633000 MODADD DC AL4(DMMMOD) MODULE NAME ROUTINE @VA04250 01634000 SCRADD DC AL4(DMMSCR) SCROLLER @VA04250 01635000 REGADD DC AL4(DMMREG) REGISTER DISPLAY @VA04250 01636000 FEDADD DC AL4(DMMFED) DUMP COMMAND @VA04250 01637000 TRACEADD DC AL4(DMMTRC) TRACE TABLE ROUTINE @VA04250 01638000 IOBADD DC AL4(DMMIOB) REAL AND VIRTUAL IOBLOCKS @VA04250 01639000 LOCADD DC AL4(DMMLOC) LOCATE @VA04250 01640000 INTADD DC AL4(DMMINT) TRANSLATE @VA04250 01641000 PBADDADD DC AL4(PREBUFAD) ADDRESS OF LOC BUFFER ADDRESS @V4075A2 01642000 BOUNDADD DC AL4(BOUND) ADDRESS OF INCREMENT @V4075A2 01643000 HEXADD DC AL4(DMMHEX) EBC-TO-BINARY TRANSLATE @V4075A2 01644000 INFOADD1 DC AL4(INFO1) 'HELP' PAGE1 @VA04250 01645000 INFOADD2 DC AL4(INFO2) 'HELP' PAGE2 @VA04250 01646000 HEXADADD DC AL4(HEXAD) DISPLAY ADDRESS IN HEX @VA04250 01647000 ISWADD DC AL4(ISW) ITEM TABLE READ SW @VA04250 01648000 MAPRSADD DC AL4(MAPREDSW) LOAD MAP READ @VA04250 01649000 RECNOADD DC AL4(RECORDNO) LAST RECORD READ @VA04250 01650000 SCBKUP DC F'176' VALUE TO BACKUP FOR TRACE @VA04250 01651000 ************************************************************ @V4075A2 01652000 * CONSTANTS FOR DMMMAP @V4075A2 01653000 ************************************************************ @V4075A2 01654000 MAXCOUNT DC F'1792' MAX TRIES IN ITEM TABLE @V4075A2 01655000 EOTFOX DC X'FFFF' END OF ITEM TABLE FLAG @V4075A2 01656000 EOF DC F'12' END OF FILE RET CODE @V4075A2 01657000 NOERR DC F'0' NO ERROR RETURN @V4075A2 01658000 CPEND DC CL8'DMKCPEND' END OF RES NUCLEUS @V4075A2 01659000 MAPRET DS F SAVE FOR MAP RET CODE @V4075A2 01660000 GOTTENAD DS F SAVE FOR DMSFREE GOTTEN ADDRESS @V4075A2 01661000 MAP DC CL8'MAP' MAP SUBCOMMAND @V4075A2 01662000 MAPADD DC AL4(DMMMAP) ADDRESS OF MAPPING ROUTINE @V4075A2 01663000 ADISK DC CL2'A1' A DISK FILE MODE IDENT @V4075A2 01664000 ITBLMSG DC C'DMMDSC705E ERROR IN ITEM TABLE' @V4075A2 01665000 MAPONMSG DC C'THE MAP HAS BEEN ADDED TO THE DUMP' @V4075A2 01666000 TWOMAPMS DC C'DMMDSC720I LOAD MAP ALREADY PRESENT' @V4075A2 01667000 DPNOTAMS DC C'DMMDSC723I THE DUMP IS NOT ON THE A-DISK' @V4075A2 01668000 STATFLAG DS C FILE STATUS FLAG BYTE @V4075A2 01669000 * * * * DO NOT SEPARATE THE FOLLOWING STATEMENTS * * * * * * **@V4075A2 01670000 SHARECON DS 0F SHARED CONSTANT AREA *@V4075A2 01671000 ORG SHARECON+1 DISP *@V4075A2 01672000 DUMPNUM DS CL8 NUMBER OF THE DUMP BEING READ *@V4075A2 01673000 ORG SHARECON+X'20' DISP *@V4075A2 01674000 REALEND DS F ADDR DMKCPEND FROM SYMBOL TABLE *@V4075A2 01675000 ORG SHARECON+X'424' DISP *@V4075A2 01676000 TEXT5 DS CL80 MSG TEXT AREA *@V4075A2 01677000 TEXT7 DS CL80 MSG TEXT AREA *@V4075A2 01678000 * * * * DO NOT SEPARATE THE ABOVE STATEMENTS * * * * * * * * **@V4075A2 01679000 TWO EQU 2 LENGTH OF ITEMTAB ENTRY @V4075A2 01680000 DUMMIES EQU 5 COUNT THE EXTRA RECS IN THE DUMP @V4075A2 01681000 EIGHT EQU 8 DISP TO ADDRESS @V4075A2 01682000 TABENT EQU 12 LENGTH OF A SYM TAB ENTRY @V4075A2 01683000 ITEMTAB EQU 56 DISP TO ITEM TAB IN DMPPGMAP @V4075A2 01684000 HIHALF EQU X'F0' MASK TO STRIP OFF LO HALF BYTE @V4075A2 01685000 * * * * * * * * ------- -------- -------- ------- * 01686000 * * * * * * * * CONSTANTS FOR CLEAR 01687000 * * * * * * * * ------- -------- -------- ------- * 01688000 CCWC CCW X'19',X'0',X'20',1760 @VA04250 01689000 SAVCLR DS 3F SAVE FOR CLEAR SUBR. @VA04250 01690000 SCRNADD DC AL4(SCRNAREA) DISPLAY AREA @VA04250 01691000 ***************************************************************@V4075A2 01692000 * CONSTANTS FOR &NAME SECTION @V4075A2 01693000 ***************************************************************@V4075A2 01694000 * DO NOT SEPARATE THE FOLLOWING STATEMENTS * * * * * * * * * **@V4075A2 01695000 ILLAMPMS DC C'DMMDSC722I INVALID ENTRY INTO ' TEXT1 * *@V4075A2 01696000 DC X'50' AMPERSAND * *@V4075A2 01697000 DC C'NAME TABLE' TEXT2 * *@V4075A2 01698000 TAMSGLEN EQU *-ILLAMPMS LENGTH OF ABOVE MSG * *@V4075A2 01699000 TABFULMS DC C'DMMDSC721I THE ' * *@V4075A2 01700000 DC X'50' AMPERSAND * *@V4075A2 01701000 DC C'NAME TABLE IS FULL' * *@V4075A2 01702000 TFMSGLEN EQU *-TABFULMS LENGTH * *@V4075A2 01703000 * DO NOT SEPARATE THE ABOVE STATEMENTS * * * * * * * * * * * **@V4075A2 01704000 AMPERSAN DC XL8'5040404040404040' AMPERSAND - BLANKS @V4075A2 01705000 TABENDSW DC X'00' END OF TABLE FOUND @V4075A2 01706000 ZBSWITCH DC X'00' BLANK CHECKING @V4075A2 01707000 DS 0F @V4075A2 01708000 NEXTSLOT DC AL4(AMPTABLE) WHERE TO START ADDING NEW TERM @V4075A2 01709000 NEWSTART DS F START OF A PARTIAL ENTRY @V4075A2 01710000 AMPBUFF DC CL60' ' BUFFER FOR &NAME LINES @V4075A2 01711000 OUTLINE DC CL80' ' WRTERM BUFFER @V4075A2 01712000 DS 0D ALIGN ON SLOT BOUNDARY. @V4075A2 01713000 AMPTABLE DC 32CL8' ' NAME TABLE - 32 SLOTS @V4075A2 01714000 ***************************************************************@V4075A2 01715000 * AT THIS WRITING YOU MAY INCREASE THE SIZE OF THE TABLE @V4075A2 01716000 * TO 70 ENTRIES BEFORE YOU RUN OUT OF THIS BASE REGISTER. @V4075A2 01717000 ***************************************************************@V4075A2 01718000 AMPTBEND DC XL8'FFFFFFFFFFFFFFFF' END OF AMPTABLE @V4075A2 01719000 HEXZERO EQU X'00' TEST IN BLANK EXTRACT RTN @V4075A2 01720000 STRINGLN DS F LENGTH OF STRING @V4075A2 01721000 STRINGAD DC CL150' ' LOCATE SEARCH ARG @V4075A2 01722000 MAXSTRNG DC F'148' MAX ALLOWED INPUT @V4075A2 01723000 PATCH DC 50F'0' PATCH AREA @VA04250 01724000 LTORG @VA04250 01725000 * * * * * * * * ------- -------- -------- ------- * 01726000 * * * * * * * * HELP PAGE 01727000 * * * * * * * * THE FOLLOWING IS THE TEXT OF THE 01728000 * * * * * * * * PAGES DISPLAYED TO THE USER ON 01729000 * * * * * * * * TYPING 'HELP'. 01730000 * * * * * * * * ------- -------- -------- ------- * 01731000 INFO1 DC CL40' DUMPSCAN - EXAMINE THE SYSTEM ABEND' @V4075A2 01732000 DC CL40' DUMPS PRODUCED BY THE VMFDUMP COMMAND.' @V4075A2 01733000 DC CL40' ' @VA04250 01734000 DC CL40' ' @VA04250 01735000 DC CL40'REPLY TO MESSAGE: ' HRC001DM 01736790 DC CL40' ' HRC001DM 01737580 DC CL40' DMMDSC701I ENTER DUMP NUMBER AND MODE ' HRC001DM 01738370 DC CL40'- FOR ''PRB00027 DUMP C'' ENTER ''27 C''' HRC001DM 01739160 DC CL40'SUBCOMMANDS: ' @VA04250 01740000 DC CL40' ' @VA04250 01741000 DC CL40' DISPLAY HEXLOC DISPLAYS X''' @VA04250 01742000 DC CL40'130'' BYTES OF THE DUMP (3270 ONLY) ' @VA04250 01743000 DC CL40' DISPLAY HEXLOC(%) XXX DISPLAYS ''X' @VA04250 01744000 DC CL40'XX'' HEX BYTES FROM LOCATION HEXLOC(%) ' @VA04250 01745000 DC CL40' TRACE NNN DISPLAYS TH' @VA04250 01746000 DC CL40'E PREVIOUS NNN TRACE ENTRIES ' @VA04250 01747000 DC CL40' SCROLL(U) SCROLL DOWN' @VA04250 01748000 DC CL40' (OR UP) ONE SCREEN OF DATA (3270 ONLY) ' @VA04250 01749000 DC CL40' C, G, REGS, (A,M)REGS C, G SHOW R' @V4075A2 01750000 DC CL40'EGS, (A,M)REGS SHOW CLOCKS AND PSWS ALSO' @V4075A2 01751000 DC CL40' DMKXXXYY/HDKXXXYY DISPLAYS TH' HRC001DM 01752490 DC CL40'E MODULE OR THE ENTRY ' @VA04250 01753000 DC CL40' DMK?/HDK? HEXLOC IDENTIFIES ' HRC001DM 01754490 DC CL40'THE MODULE CONTAINING THE ADDRESS ' @VA04250 01755000 DC CL40' MAP ADDS A NUCL' @V4075A2 01756000 DC CL40'EUS LOAD MAP TO THE DUMP BEING EXAMINED.' @V4075A2 01757000 DC CL40' PRINT (ON,OFF, ,CLOSE,?,SUBCOMMAND ' @V4075A2 01758000 DC CL40'CONTROLS PRINTING OF DISPLAYED DATA ' @V4075A2 01759000 DC XL5'4040404050' AMPERSAND @V4075A2 01760000 DC CL35'NAME (NAME BUILDS AND ' @V4075A2 01761000 DC CL40'CALLS A TABLE OF HIGH-USE SUB-COMMANDS.' @V4075A2 01762000 DC CL40' VMBLOK LISTS USER ' @VA04250 01763000 DC CL40'VMBLOKS AND STATUS ' @VA04250 01764000 DC CL40' RIOBLOK CUU DISPLAYS TH' @VA04250 01765000 DC CL40'E RCH, RCU, AND RDEV BLOCKS ' @VA04250 01766000 DC CL40' VIOBLOK CUU USER DISPLAYS TH' @VA04250 01767000 DC CL40'E VCH, VCU, AND VDEV BLOCKS FOR USER ' @VA04250 01768000 DC CL40' LOCATE STRING FROM TO (I SEEKS THE S' @V4075A2 01769000 DC CL40'TRING FROM ''FROM'' TO ''TO'' IN STEPS ''I''.' 01770000 DC CL40' HELP REDISPLAYS ' @VA04250 01771000 DC CL40'THIS PAGE.' @V4075A2 01772000 DC CL40' HX, QUIT, OR END WILL END TH' @VA04250 01773000 DC CL40'E SESSION ' @VA04250 01774000 DC CL40' TYPE HELP FOR MORE DETAIL, OR HIT EN' @VA04250 01775000 DC CL40'TER.' @VA04250 01776000 * * * * * * * * ------- -------- -------- ------- * 01777000 * * * * * * * * THIS IS PAGE 2 - MORE DETAIL ON COMMANDS 01778000 * * * * * * * * ------- -------- -------- ------- * 01779000 INFO2 DC CL40' DUMPSCAN _ P' @VA04250 01780000 DC CL40'AGE 2 ' @VA04250 01781000 DC CL40' ALL INPUT IS TOKENIZED. ANY STRINGS ' @VA04250 01782000 DC CL40'OVER 8 BYTES (EXCEPT IN LOCATE) WILL BE ' @VA04250 01783000 DC CL40' TRUNCATED UNLESS THERE IS A DELIMITE' @VA04250 01784000 DC CL40'R IN THE STRING. DELIMITERS ARE BLANKS ' @VA04250 01785000 DC CL40' AND PERIODS. TO BE COMPATIBLE WITH C' @V4075A2 01786000 DC CL40'P, DISPLAY ACCEPTS THE LEADING ''T''. SO' @V4075A2 01787000 DC CL40' YOU MAY ENTER:- DISPLAY 1234 56 OR' @V4075A2 01788000 DC CL40' D 1234.56 OR D T1234 56 OR D T1234.56' @V4075A2 01789000 DC CL40' ALL COMMANDS MAY BE TRUNCATED. LEA' @VA04250 01790000 DC CL40'DING ZEROS ARE NOT NEEDED IN ADDRESSES. ' @VA04250 01791000 DC CL40' THE USERID IN THE VIOBLOK COMMAND WI' @VA04250 01792000 DC CL40'LL DEFAULT TO THE LAST USERID ENTERED, ' @VA04250 01793000 DC CL40' OR TO OPERATOR, IF ONE HAS NOT BEEN ' @VA04250 01794000 DC CL40'USED. MOST ROUTINES DISPLAY THE COMMAND ' @VA04250 01795000 DC CL40' AT THE TOP OF THE DISPLAY, BUT SOME ' @VA04250 01796000 DC CL40'LONG DISPLAYS, SUCH AS TRACE OR DISPLAY ' @VA04250 01797000 DC CL40' WILL GO TO ANOTHER PAGE. THE LAST CO' @VA04250 01798000 DC CL40'MMAND MAY BE RECALLED BY TYPING ?. ' @VA04250 01799000 DC CL40' ENTERING A CP MODULE NAME - DMKXXX/H' HRC001DM 01800590 DC CL40'DKXXX - CAUSES A LOAD MAP ON THE END OF ' HRC001DM 01801180 DC CL40' THE CMS DUMP TO BE SEARCHED. IF T' @VA04250 01802000 DC CL40'HE MODULE NAME IS FOUND, ITS VIRTUAL ' @VA04250 01803000 DC CL40' AND REAL ADDRESSES ARE FOUND, AND TH' @VA04250 01804000 DC CL40'E REAL ADDRESS AND DATA ARE DISPLAYED. ' @VA04250 01805000 DC CL40' THE SAME IS DONE FOR AN ENTRY POINT ' @VA04250 01806000 DC CL40'- DMMXXXYY - AND IF THE EXACT ENTRY IS ' @VA04250 01807000 DC CL40' NOT FOUND THE ROUTINE LOOKS FOR THE ' @VA04250 01808000 DC CL40'PARENT MODULE NAME - DMMXXX - DISPLAYING' @VA04250 01809000 DC CL40' THAT IF POSSIBLE. DMK? FINDS THE MOD' @VA04250 01810000 DC CL40'ULE BELOW HEXLOC, AND ON THE SAME PAGE. ' @VA04250 01811000 DC CL40' IF THE DUMP HAS NO LOAD MAP, YOU MAY' @V4075A2 01812000 DC CL40' ADD IT NOW BY USING THE MAP SUBCOMMAND.' @V4075A2 01813000 DC CL40' LOCATE SEARCHES FOR THE GIVEN STRING' @VA04250 01814000 DC CL40' - UP TO 16 HEX DIGITS, NO SPACES. ' @VA04250 01815000 DC CL40' LOCATE AND SCROLL HAVE A "REUSE" FUN' @VA04250 01816000 DC CL40'CTION. A NULL LINE CAUSES THE PREVIOUS ' @VA04250 01817000 DC CL40' COMMAND TO BE REISSUED, UPDATED TO T' @VA04250 01818000 DC CL40'HE CURRENT ADDRESS. ' @VA04250 01819000 DC CL40' ' @VA04250 01820000 DC CL40' ' @VA04250 01821000 DC CL40' TYPE "HELP" TO GET BACK T' @VA04250 01822000 DC CL40'O PAGE1, OR HIT ENTER TO CONTINUE. ' @VA04250 01823000 REGEQU @VA04250 01824000 COPY DEVTYPES DEVICE TYPE MASKS @VA04250 01825000 COPY DMPBLOKS DUMPINREC @V4075A2 01826000 FSTB FILE STATUS TABLE @V4075A2 01827000 END 01828000