EFRDMP
* /--- FILE TYPE = E
* /--- BLOCK IDENT 00 000 81/07/12 02.13
IDENT EFRDMP,111B,EFRDMP
ABS
SST
SYSCOM B1
ENTRY EFRDMP
ENTRY RFL=
*COMMENT EFRDMP - DUMP EXTENDED ESM FLAG REGISTERS.
COMMENT COPYRIGHT CONTROL DATA CORP. 1981.
TITLE EFRDMP - DUMP EXTENDED ESM FLAG REGISTERS.
* /--- BLOCK DOCUMENT 00 000 81/07/12 02.44
EFRDMP SPACE 4,10
*** EFRDMP - DUMP EXTENDED ESM FLAG REGISTERS.
* M. S. VOLLMER 81/07/13.
SPACE 4,10
*** EFRDMP PROVIDES A LABELED DUMP OF THE EXTENDED
* ESM FLAG REGISTERS USED BY MULTI-EXECUTOR/MULTI-
* FORMATTER PLATO SYSTEMS.
SPACE 4,10
*** CONTROL CARD CALL.
*
* EITHER ZERO OR TWO ARGUMENTS MAY BE PRESENT.
*
* IF NO ARGUMENTS ARE PRESENT, THE BASE FLAG
* REGISTER NUMBER (*EFRB* IN THE PLATO CONFIG FILE)
* AND THE NUMBER OF PLATO STATIONS (*NUMSTAT* IN
* PLATO) ARE ASSUMBED TO BE IN KCL R2 AND R3,
* RESPECTIVELY.
*
* IF TWO ARGUMENTS ARE PRESENT, THE FIRST SPECIFIES
* THE BASE FLAG REGISTER NUMBER AND THE SECOND THE
* NUMBER OF PLATO STATIONS. THE ARGUMENTS ARE
* ALWAYS POSITIONAL, NOT KEYWORD-ORIENTED.
*
* EXAMPLES --
*
* EFRDMP. USE KCL R2 AS BASE AND R3 AS
* NUMBER OF PLATO STATIONS.
* EFRDMP(100B,640) START WITH REGISTER 100B. USE
* 640 AS THE NUMBER OF PLATO
* STATIONS.
SPACE 4,10
*** DAYFILE MESSAGES.
*
* * ARGUMENT ERROR.* - AN INCORRECT NUMBER OF
* ARGUMENTS WERE SPECIFIED ON THE CONTROL CARD, OR
* AN ARGUMENT COULD NOT BE CONVERTED TO A BINARY
* INTEGER BY *DXB*, OR THE NUMBER OF PLATO STATIONS
* IS NOT DIVISIBLE BY 32, OR ONE OF THE PARAMETERS
* IS NEGATIVE OR INCONSISTENT. THE PROGRAM IS
* ABORTED.
*
* * BAD FLAG REGISTER NUMBER.* - THE PROGRAM
* ATTEMPTED TO DUMP A REGISTER NOT IN THE RANGE
* 0 .LE. REGISTER .LE. 16383. THE PROGRAM IS
* ABORTED.
*
* * MACHINE NOT IN ESM MODE.* - THE MACHINE HAS NO
* EXTENDED MEMORY, HAS ECS, OR HAS ESM IN ECS MODE.
* EXECUTION OF EFRDMP ENDS NORMALLY WITHOUT DUMPING
* ANY EXTENDED FLAG REGISTERS.
*
* * NO MATCH FOR REGISTER.* - AN ABORT WAS RETURNED
* FOR ALL POSSIBLE CONTENTS OF AN EXTENDED ESM FLAG
* REGISTER. THIS COULD BE DUE TO HARDWARE ERROR OR
* BECAUSE ANOTHER PROGRAM WAS CHANGING THE CONTENTS
* OF THE REGISTER AT THE SAME TIME. THE CONTENTS OF
* OF THE REGISTER WILL BE SHOWN AS *ERROR.* IN THE
* OUTPUT.
**** COMMON DECKS (NOS MACROS)
*CALL COMCMAC
*CALL COMCCMD
****
ORG 111B
* /--- BLOCK EFRDMP 00 000 81/07/12 03.55
EFRDMP SPACE 4,21
** EFRDMP - EXTENDED FLAG REGISTER DUMP
*
* DUMP EXTENDED ESM FLAG REGISTERS USED BY PLATO
* AND BY FRAMAT/FORMAT IF A MACHINE IS IN ESM
* MODE AND IS CONFIGURED FOR MULTIPLE EXECUTORS
* AND/OR FOR MULTIPLE FORMATTERS.
*
* ENTRY BASE REGISTER AND NUMBER OF PLATO STATIONS
* PASSED AS CONTROL CARD ARGUMENTS OR IN
* KCL R2 AND R3.
*
* EXIT PLATO/FORMAT FLAG REGISTERS DUMPED.
* PROGRAM TERMINATED NORMALLY.
*
* USES A - NONE.
* B - 1.
* X - 6.
*
* CALLS CMM, GPM, PER, SYS=.
*
* MACROS ENDRUN.
EFRDMP SB1 1 (B1) = 1
RJ CMM CHECK MEMORY MODE
RJ GPM GET PARAMETERS
RJ PER PRINT EXTENDED REGISTERS
ENDRUN
* /--- BLOCK CMM 00 000 81/07/12 02.35
CMM SPACE 4,15
** CMM - CHECK MEMORY MODE
*
* SEE IF MACHINE IS IN ESM MODE.
*
* ENTRY NONE.
*
* EXIT PROGRAM ENDED IF IN ECS MODE.
*
* USES A - 1.
* B - NONE.
* X - 1, 2.
*
* CALLS CVL=, MSG=, SYS=.
*
* MACROS ENDRUN, GETMC, MESSAGE.
CMM PS
GETMC CMMA
SA1 CMMA
LX1 59-ESMM TEST FOR ESM MODE
NG X1,CMM IF IN ESM MODE
MESSAGE CMMB,0,R
ENDRUN
CMMA BSS 1
CMMB DIS ,* MACHINE NOT IN ESM MODE.*
* /--- BLOCK EFR 00 000 81/07/13 13.35
EFR SPACE 4,18
** EFR - EVALUATE FLAG REGISTER
*
* RETURN THE CONTENTS OF AN EXTENDED FLAG REGISTER
*
* ENTRY (X1) = RELATIVE REGISTER NUMBER.
* (BASE) = EXTENDED FLAG REGISTER BASE.
*
* EXIT (X6) = RIGHT-JUSTFIED ALPHA REGISTER VALUE.
* (X6) = 6LERROR. IF NO MATCH.
* PROGRAM ABORTED IF REGISTER .GT. 16383.
*
* USES A - 0, 1, 2.
* B - 2, 7.
* X - 0, 1, 2, 3, 6.
*
* CALLS COD, MSG=, SYS=.
*
* MACROS ABORT, MESSAGE.
EFR PS
SA2 BASE (X2) = BASE REGISTER NUMBER
IX2 X1+X2 (X2) = ABSOLUTE REGISTER NUMBER
SX2 X2 LIMIT TO 18 BITS
NG X2,EFR3 ERROR IF .LT. 0
SX1 X2-EFRMAX-1 CHECK IF .GT. 16383
PL X1,EFR3 IF REGISTER NUMBER TOO LARGE
LX2 4 POSITION REGISTER IN BITS 4-17
SX3 ESEES
LX3 GFRSC (X3) = EQUALITY/STATUS FUNCTION
BX2 X2+X3 (X2) = REGISTER AND FUNCTION
SA1 EFRA-1 PRESET ADDRESS OF TABLE
SA0 EFRB (A0) = SOMETHING REASONABLE
EFR1 SA1 A1+B1 (X1) = NEXT PATTERN
BX0 X1+X2 (X0) = ASSEMBLED FLAG FUNCTION
+ RE 1
- EQ EFR2 IF REJECT TRY NEXT PATTERN
SB7 0 DEFAULT TO OCTAL BASE
RJ COD CONVERT RESULT TO DISPLAY CODE
EQ EFR
EFR2 NZ X1,EFR1 IF NOT END OF TABLE
MESSAGE EFRC,0,R ISSUE ERROR MESSAGE TO DAYFILE
SA1 EFRD
BX6 X1 (X6) = 6LERROR.
EQ EFR
EFR3 MESSAGE EFRE,0,R SEND ERROR MESSAGE TO DAYFILE
ABORT DIE
EFRA CON 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
EFRB BSS 1
EFRC DIS ,* NO MATCH FOR REGISTER.*
EFRD DATA 6LERROR.
EFRE DIS ,* BAD FLAG REGISTER NUMBER.*
* /--- BLOCK GPM 00 000 81/07/13 00.54
GPM SPACE 4,20
** GPM - GET PARAMETERS
*
* DETERMINE (1) BASE REGISTER AT WHICH TO START
* DUMPING THE EXTENDED FLAG REGISTERS AND (2) THE
* NUMBER OF PLATO STATIONS.
*
* ENTRY VALUES PASSED VIA CONTROL CARD ARGUMENTS OR
* KCL R2 AND R3.
*
* EXIT (BASE) = NUMBER OF BASE REGISTER.
* (NUMSTAT) = NUMBER OF PLATO STATIONS.
* PROGRAM ABORTED IF ARGUMENT ERROR.
*
* USES A - 1, 2, 5, 6, 7.
* B - 7.
* X - 1, 2, 5, 6, 7.
*
* CALLS CPM=, DXB, MSG=, SYS=.
*
* MACROS ABORT, GETJCI, MESSAGE.
GPM PS
SA1 ACTR (X1) = 42/PROGRAM, 18/ARGUMENTS
SX1 X1 (X1) = NUMBER OF ARGUMENTS
ZR X1,GPM1 IF VALUES IN KCL R2 AND R3
SX1 X1-2 CHECK FOR 2 ARGUMENTS
ZR X1,GPM2 IF ARGUMENTS PRESENT
EQ GPM4 IF BAD NUMBER OF ARGUMENTS
* IF NO ARGUMENTS WERE PRESENT, GET THE BASE
* REGISTER NUMBER FROM KCL R2 AND THE NUMBER OF
* PLATO STATIONS FROM KCL R3.
GPM1 GETJCI GPMA GET JOB CONTROL INFORMATION
SA1 GPMA+1 (X1) = 6/EF,18/R3,18/R2,18/R1
AX1 18
SX6 X1 (X6) = BASE REGISTER
AX1 18
SX7 X1 (X7) = NUMBER OF PLATO STATIONS
SA6 BASE
SA7 NUMSTAT
EQ GPM3
* IF ARGUMENTS ARE PRESENT, USE THEM AS THE BASE
* REGISTER NUMBER AND THE NUMBER OF PLATO STATIONS.
GPM2 SA5 ARGR (X5) = 1ST ARGUMENT
SB7 B1+ DEFAULT TO DECIMAL BASE
RJ DXB CONVERT TO BINARY
NZ X4,GPM4 IF BAD ARGUMENT
SA6 BASE SAVE BASE REGISTER NUMBER
SA5 ARGR+B1 (X5) = 2ND ARGUMENT
SB7 B1+ DEFAULT TO OCTAL BASE
RJ DXB CONVERT TO BINARY
NZ X4,GPM4 IF BAD ARGUMENT
SA6 NUMSTAT SAVE NUMBER OF PLATO STATIONS
* /--- BLOCK GPM 00 000 81/07/13 02.52
* CHECK FOR CORRECTNESS AND CONSISTENCY OF THE
* ARGUMENTS.
GPM3 SA1 BASE (X1) = BASE FLAG REGISTER
SA2 NUMSTAT (X2) = NUMBER OF PLATO STATIONS
NG X1,GPM4 ERROR IF NEGATIVE BASE
NG X2,GPM4 ERROR IF NEGATIVE STATIONS
ZR X2,GPM4 ERROR IF ZERO STATIONS
MX6 -5
BX6 -X6*X2 ZERO IF DIVISIBLE BY 32
NZ X6,GPM4 ERROR IF MOD(NUMSTAT,32) .NE. 0
SX6 X2
AX6 5 (X6) = NUMBER OF SITES
SX6 X6-MXSITES-1
PL X6,GPM4 IF TOO MANY SITES
SX6 I.NUM+FI.NUM-1
IX6 X1+X6
IX6 X2+X6 (X6) = LAST REGISTER USED
SX1 EFRMAX (X1) = MAX. REAL FLAG REGISTER
IX1 X1-X6
PL X1,GPM EXIT IF REGISTERS IN RANGE
* IF THE NUMBER OF ARGUMENTS WAS INCORRECT OR IF
* THE ARGUMENTS WERE OTHERWISE INCORRECT OR INCON-
* SISTENT, ISSUE AN ERROR MESSAGE AND ABORT.
GPM4 MESSAGE GPMB,0,R ISSUE ERROR MESSAGE
ABORT LUNCH BREAK
GPMA BSS 2 JOB CONTROL INFORMATION
GPMB DIS ,* ARGUMENT ERROR.*
* /--- BLOCK PER 00 000 81/07/13 02.00
PER SPACE 4,16
** PER - PRINT EXTENDED REGISTERS
*
* PRINT THE EXTENDED FLAG REGISTERS USED BY PLATO
* AND BY FRAMAT/FORMAT.
*
* ENTRY (BASE) = BASE REGISTER NUMBER.
*
* EXIT FLAG REGISTERS PRINTED.
*
* USES A - 1, 2, 6.
* B - 2, 6.
* X - 1, 2, 6, 7.
*
* CALLS CDD, CIO=, COD, EFR, WTC=.
*
* MACROS CLOSE, OPEN, WRITEC, WRITER.
PER PS
* OPEN PRINT FILE AND WRITE HEADER.
OPEN OUTPUT,WRITENR,R OPEN OUTPUT FILE
WRITEC OUTPUT,PERA PRINT HEADER
SA1 BASE (X1) = BASE FLAG REGISTER
RJ COD CONVERT TO OCTAL DISPLAY CODE
SA6 PERB+2
WRITEC OUTPUT,PERB PRINT BASE REGISTER NUMBER
WRITEC OUTPUT,PERC SKIP A LINE
* PRINT PROCESS INTERLOCKS.
PER1 SA1 PERD (X1) = INDEX INTO *EFRTAB*
SA2 X1+EFRTAB (X2) = NEXT TABLE ENTRY
NG X2,PER3 IF END OF TABLE
SX6 X1+B1 UPDATE INDEX
SA6 A1
ZR X2,PER2 IF SHOULD SKIP A LINE
MX3 -18
BX1 -X3*X2 (X1) = RELATIVE REGISTER NUMBER
BX3 X3*X2 (X3) = ALPHA DESCRIPTION
SA2 PERE (X2) = 3R =
BX6 X3+X2
SA6 PERF+1 STORE ALPHA DESCRIPTION IN LINE
RJ EFR EVALUATE FLAG REGISTER
SA6 PERF+2
WRITEC OUTPUT,PERF WRITE LABEL AND REGISTER VALUE
EQ PER1
PER2 WRITEC OUTPUT,PERC SKIP A LINE
EQ PER1
* /--- BLOCK PER 00 000 81/07/13 02.40
* PRINT STATION INTERLOCKS.
PER3 WRITEC OUTPUT,PERG WRITE PAGE HEADER
WRITEC OUTPUT,PERC SKIP A LINE
SA1 BASE (X1) = BASE FLAG REGISTER
SX6 X1+I.NUM+FI.NUM ADJUST FOR STATION INTLOKS
SA6 A1
PER4 SA1 PERI (X1) = LAST STATION NUMBER
SX6 X1+1 (X6) = NEXT STATION NUMBER
SA2 NUMSTAT (X2) = NUMBER OF STATIONS
IX2 X6-X2
PL X2,PER5 IF ALL STATIONS FINISHED
SA6 A1 SAVE CURRENT STATION NUMBER
SX1 X6+
AX1 5 (X1) = SITE NUMBER
RJ CDD CONVERT TO DECIMAL
MX4 -12
BX6 -X4*X6 SAVE BOTTOM TWO DIGITS
LX6 48 (X6) = LEFT-JUSTIFIED SITE NO.
SA6 PERJ
SA1 PERI (X1) = BINARY STATION NUMBER
MX6 -5
BX1 -X6*X1 (X6) = STATION PORTION
RJ CDD CONVERT TO DECIMAL
MX4 -12
BX6 -X4*X6 SAVE TWO DIGITS OF STATION NO.
SX4 1R-
LX6 30 POSITION STATION NUMBER
LX4 42 POSITION HYPHEN
SA1 PERJ (X1) = LEFT-JUSTIFIED SITE NO.
BX6 X6+X1
BX6 X6+X4 (X6) = SITE-STATION
SA1 PERK (X1) = 5R =
BX6 X1+X6
SA6 PERF+1
SA1 PERI (X1) = BINARY STATION NUMBER
RJ EFR EVALUATE FLAG REGISTER
SA6 PERF+2
WRITEC OUTPUT,PERF
EQ PER4 PROCESS NEXT STATION
PER5 WRITEC OUTPUT,PERL PAGE EJECT
WRITER OUTPUT,RECALL
CLOSE OUTPUT,NR,RECALL
EQ PER
PERA DIS ,*1EXTENDED FLAG REGISTER DUMP.*
PERB DATA 20H0 BASE REGISTER =
BSS 1
DATA 1LB
PERC DATA 1L FOR BLANK LINES
PERD DATA 0 INDEX INTO *EFRTAB*
PERE DATA 3R =
PERF DATA 10H
BSS 1 ALPHA DESCRIPTION
BSS 1 OCTAL CONTENTS OF REGISTER
DATA 1LB
PERG DIS ,*1STATION INTERLOCKS.*
PERI DATA -1 BINARY STATION NUMBER
PERJ BSS 1 ALPHA STATION NUMBER (XX-YY)
PERK DATA 5R =
PERL DATA 1L1 PAGE EJECT
* /--- BLOCK END 00 000 81/07/13 02.52
**** COMMON DECKS (NOS)
QUAL$ EQU 0
LIST -X
*CALL COMCSYS
*CALL COMCCPM
*CALL COMCCVL
*CALL COMCDXB
*CALL COMCCOD
*CALL COMCCDD
*CALL COMCWTC
*CALL COMCWTW
*CALL COMCCIO
LIST *
****
**** COMMON DECKS (PLATO)
*CALL SYSCON
*CALL EXTEXT
*CALL PLASRWX
****
LIST D
EFRTAB BSS 0
INTTAB$ HERE INSERT INTERLOCK TABLE
LIST *
BASE BSS 1 EXTENDED REGISTER BASE
NUMSTAT BSS 1 NUMBER OF PLATO STATIONS
EFRMAX EQU 16383 MAXIMUM FLAG REGISTER NUMBER
CIOLTH EQU 401B
OUTPUT FILEB CIOBUF,CIOLTH,FET=14B
CIOBUF BSS CIOLTH
RFL= EQU *+1
END