ECDMP IDENT ECDMP,111B,ECDMP TITLE ECDMP - ECS DUMPER FOR PLATO. * * * * DUMPS CONTENTS OF GIVEN ECS LOCATIONS INTO FILE * NAMED IN FIRST ARGUMENT. FILE IS WRITTEN AS A * SERIES OF 1000B (512) WORD RECORDS AND IS ENDED * WITH AN END-OF-FILE. JOB CALLING ECDMP MUST * ALREADY HAVE AN ECS FIELD LENGTH SET, ECDMP DOES * NOT REQUEST ANY ECS OF ITS OWN. * * THE FIRST RECORD OF EVERY DUMP IS A HEADER RECORD * CONTAINING THE NAME OF THE JOB WHICH DID THE DUMP * AND THE DATE AND TIME OF THE DUMP. * * * * ECDMP(FILE,FFFF,LLLL) * * FILE = FILE NAME TO RECEIVE DUMP (ASSUMES *ECFILE*) * FFFF = FIRST WORD OF ECS TO DUMP/1000B (IN OCTAL) * LLLL = LAST WORD OF ECS TO DUMP/1000B (IN OCTAL) * * * * * COMMENT COPYRIGHT CONTROL DATA CORP. 1978. *COMMENT ECDMP - ECS DUMPER FOR PLATO. * ABS SST SYSCOM B1 *CALL COMCMAC * BUFL EQU 1001B CIO BUFFER LENGTH TITLE MAIN LOOP ORG 111B * ECDMP RJ PRS SA1 ECSL CHECK FOR NOTHING TO DO ZR X1,ECDONE NG X1,ECDONE OPEN ECFILE,WRITE,R RECALL ECFILE REWIND ECFILE,R RECALL ECFILE * * WRITE HEADER RECORD * GETJN BUFF SET JOB NAME IN HEADER DATE BUFF+1 SET DATE IN HEADER CLOCK BUFF+2 SET TIME IN HEADER SX6 BUFF+3 SET IN POINTER SA6 ECFILE+2 SX6 BUFF SET OUT POINTER SA6 A6+B1 WRITER ECFILE,R WRITE HEADER RECALL ECFILE * * SET ERROR EXIT ADDRESS TO ALLOW ORDERLY EXIT * EREXIT ECDONE * * SET UP FOR ECS DUMP * SA0 BUFF CM ADDRESS SA1 ECSF SET BEGINNING ECS ADDRESS LX1 9 BX0 X1 * ECLOOP BX1 X0 ISSUE MESSAGE RJ COD SA6 MSG+1 MESSAGE MSG,1,R RE BUFL-1 READ WORDS INTO BUFFER - RJ ECSERR SX6 BUFF+BUFL-1 RESET CIO POINTERS FOR TRANSFR SA6 ECFILE+2 SX6 BUFF SA6 A6+B1 WRITER ECFILE,R TRANSFER DATA RECALL ECFILE SX1 BUFL-1 INCREMENT ECS ADDRESS IX0 X0+X1 SA2 ECSL DECREMENT LENGTH TO READ AX1 9 IX6 X2-X1 ZR X6,ECDONE IF ALL DUMPED NG X6,ECDONE IF ALL DUMPED SA6 A2 EQ ECLOOP * ECDONE BSS 0 WRITEF ECFILE,R TACK ON AN EOF RECALL ECFILE ENDRUN QUIT * * MSG CON 10LDUMPING - BSS 1 CON 0 TITLE ECSERR -- REPORT ECS ERRORS ** * ECSERR - REPORT ECS ERRORS * * ON ENTRY - X0 = ADDRESS OF ECS READ * * ISSUES ERROR MESSAGE * * ECSERR EQ *+400000B BX1 X0 CONVERT ADDRESS TO DISPLAY CODE RJ COD SA6 ADDR MESSAGE ERR,0,R SX1 BUFL-1 DUMMY UP A RECORD AX1 1 DIVIDE BY TWO SB2 X1 SA1 DUMMY SA2 A1+B1 BX6 X1 BX7 X2 SA6 BUFF SA7 A6+B1 * ECSERR1 SB2 B2-B1 ZR B2,ECSERR IF DONE NG B2,ECSERR IF OVER-DONE SA6 A6+2 SA7 A6+B1 EQ ECSERR1 * * ERR DIS 2,(ECDMP) ECS ERROR - ADDR BSS 1 CON 0 * DUMMY DIS ,/*** ECS ERROR ***/ * COD TITLE CONVERSION ROUTINES ** * COD - CONSTANT TO OCTAL DISPLAY CODE CONVERSION * * CONVERT 10 OCTAL DIGITS TO DISPLAY CODE WITHOUT * LEADING ZERO SUPPRESSION * * MODIFICATION OF KRONOS COMMON DECK COMCCOD * * ENTRY X1=NUMBER TO CONVERT * * EXIT X6=DPC CONVERSION * * USES - A - NONE * X - 1,2,3,4,6 * B - 3 * * CALLS NONE * * COD EQ *+400000B SB3 10 CONVERT 10 DIGITS MX2 -3 DIGIT MASK MX6 0 SX3 1R0 CONVERSION CONSTANT * COD1 BX4 -X2*X1 GET DIGIT IX4 X4+X3 CONVERT LX4 -6 LX6 -6 BX6 X6+X4 INSERT CHAR SB3 B3-B1 EQ B3,B0,COD JUMP IF 10 DIGITS AX1 3 GO TO NEXT DIGIT EQ COD1 LOOP TILL 10 DIGITS * * * * *CALL COMCCPM *CALL COMCCIO *CALL COMCSYS * * * ECSF BSS 1 FIRST WORD TO DUMP/1000B ECSL BSS 1 ECS DUMP LENGTH/1000B * * * FET AND BUFFER * ECFILE FILEB BUFF,BUFL * * BUFF EQU * * * RFL= EQU BUFF+BUFL+2 * * INITIALIZATIONS GO INTO CIO BUFFER * PRS EQ *+400000B SB1 1 * * SET OUTPUT FILE NAME * SA1 ARGR SET FILE NAME MX6 42 BX6 X6*X1 ZR X6,INIT1 IF NONE, USE *ECFILE* SX7 B1 BX6 X6+X7 SA6 ECFILE * * CONVERT ECS FWA TO OCTAL * INIT1 MX0 -6 MX6 0 CLEAR NUMBER BUILDING SA1 ARGR+1 LOAD ECS FWA ZR X1,W10 BX2 -X0*X1 CHECK FOR LEGAL ARGUMENT NZ X2,W10 RJ ATOO * W10 SA6 ECSF * * CONVERT ECS LWA TO OCTAL * MX0 -6 MX6 0 CLEAR NUMBER BUILDING SA1 ARGR+2 LOAD ECS LWA ZR X1,W100 BX2 -X0*X1 CHECK FOR LEGAL ARGUMENT NZ X2,W100 RJ ATOO * W100 SA1 ECSF CHANGE TO ECS LENGTH TO DUMP IX6 X6-X1 SA6 ECSL EQ PRS * * * ATOO EQ * LX1 6 POSITION NEXT CHARACTER BX2 -X0*X1 ZR X2,ATOO EXIT IF END SX2 X2-1R0 CONVERT TO OCTAL LX6 3 IX6 X2+X6 ADD TO NUMBER BUILDING EQ ATOO+1 * * * * * END