plato:source:plaopl:emdmp
Table of Contents
EMDMP
Table Of Contents
- [00005] EMDMP - CONTROL POINT EM DUMP (PLATO).
- [00041] MAIN LOOP
- [00108] ECSERR โ REPORT EM ERRORS
- [00183] COMMON DECKS / FETS / ETC.
- [00202] PRESET
Source Code
- EMDMP.txt
- EMDMP
- * /--- FILE TYPE = E
- * /--- BLOCK INTRO 00 000 82/09/30 08.35
- IDENT EMDMP,111B,EMDMP
- TITLE EMDMP - CONTROL POINT EM DUMP (PLATO).
- *
- *
- *
- * DUMPS EXTENDED MEMORY 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. THE CALLING JOB MUST
- * ALREADY HAVE AN EM FIELD LENGTH SET, EMDMP DOES
- * NOT REQUEST ANY EM 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.
- *
- *
- *
- * EMDMP(FILE,FFFF,LLLL)
- *
- * FILE = FILE NAME TO RECEIVE DUMP (ASSUMES *EMFILE*)
- * FFFF = FIRST WORD TO DUMP/1000B (IN OCTAL)
- * LLLL = LAST WORD OF TO DUMP/1000B (IN OCTAL)
- *
- *
- *
- *
- * COMMENT COPYRIGHT CONTROL DATA CORP. 1982.
- *COMMENT EMDMP - CONTROL POINT EM DUMP (PLATO).
- *
- ABS
- SST
- SYSCOM B1
- *CALL COMCMAC
- *
- BUFL EQU 1001B CIO BUFFER LENGTH
- * /--- BLOCK MAIN 00 000 82/09/30 08.40
- TITLE MAIN LOOP
- ORG 111B
- *
- EMDMP RJ PRS
- SA1 ECSL CHECK FOR NOTHING TO DO
- ZR X1,ECDONE
- NG X1,ECDONE
- OPEN EMFILE,WRITE,R
- RECALL EMFILE
- REWIND EMFILE,R
- RECALL EMFILE
- *
- * 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 EMFILE+2
- SX6 BUFF SET OUT POINTER
- SA6 A6+B1
- WRITER EMFILE,R WRITE HEADER
- RECALL EMFILE
- *
- * SET ERROR EXIT ADDRESS TO ALLOW ORDERLY EXIT
- *
- EREXIT ECDONE
- *
- * SET UP FOR EM DUMP
- *
- SA0 BUFF CM ADDRESS
- SA1 ECSF SET BEGINNING EM 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 EMFILE+2
- SX6 BUFF
- SA6 A6+B1
- WRITER EMFILE,R TRANSFER DATA
- RECALL EMFILE
- SX1 BUFL-1 INCREMENT EM 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 EMFILE,R TACK ON AN EOF
- RECALL EMFILE
- ENDRUN QUIT
- *
- *
- MSG CON 10LDUMPING -
- BSS 1
- CON 0
- * /--- BLOCK ECSERR 00 000 82/09/30 08.41
- TITLE ECSERR -- REPORT EM ERRORS
- **
- * ECSERR - REPORT EM ERRORS
- *
- * ON ENTRY - X0 = ADDRESS OF EM 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,(EMDMP) ECS ERROR -
- ADDR BSS 1
- CON 0
- *
- DUMMY DIS ,/*** ECS ERROR ***/
- *
- * /--- BLOCK COD 00 000 82/09/30 08.41
- 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
- * /--- BLOCK MISC 00 000 82/09/30 08.43
- TITLE COMMON DECKS / FETS / ETC.
- *CALL COMCCPM
- *CALL COMCCIO
- *CALL COMCSYS
- SPACE 4
- ECSF BSS 1 FIRST WORD TO DUMP/1000B
- ECSL BSS 1 ECS DUMP LENGTH/1000B
- *
- *
- * FET AND BUFFER
- *
- EMFILE FILEB BUFF,BUFL
- *
- *
- BUFF EQU *
- *
- *
- RFL= EQU BUFF+BUFL+2
- * /--- BLOCK PRS 00 000 82/09/30 08.47
- TITLE PRESET
- *
- * 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 *EMFILE*
- SX7 B1
- BX6 X6+X7
- SA6 EMFILE
- *
- * CONVERT EM FWA TO OCTAL
- *
- INIT1 MX0 -6
- MX6 0 CLEAR NUMBER BUILDING
- SA1 ARGR+1 LOAD EM FWA
- ZR X1,W10
- BX2 -X0*X1 CHECK FOR LEGAL ARGUMENT
- NZ X2,W10
- RJ ATOO
- *
- W10 SA6 ECSF
- *
- * CONVERT EM LWA TO OCTAL
- *
- MX0 -6
- MX6 0 CLEAR NUMBER BUILDING
- SA1 ARGR+2 LOAD EM LWA
- ZR X1,W100
- BX2 -X0*X1 CHECK FOR LEGAL ARGUMENT
- NZ X2,W100
- RJ ATOO
- *
- W100 SA1 ECSF CHANGE TO EM 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
- SPACE 3
- END
plato/source/plaopl/emdmp.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator