.
. ELEMENT MODES COMMAND PROCESS
.
. THIS COMMAND PROCESS SERVICES THOSE COMMANDS
. WHICH SET THE MODES OF ELEMENT TABLE ENTRIES.
. CURRENTLY: TYPE, CYCLE
.
.
. (C) Copyright 1972-1978 John Walker
.
. This software is in the public domain
.
AXR$
DEFUNCT$
FANG
.
PURE CODE
.
TYPESET* LA,U A11,TYPESET LOAD ENTRY IDENTIFICATION
J START PROCESS THE COMMAND
.
CYCLE* LA,U A11,CYCLE SAVE COMMAND IDENTITY
.
START R$DIT . FIRE UP THE EDITOR
LMJ X6,GELT SET UP TO READ ELEMENT TABLE
J BSPERR BSP ERROR INITIALISING
LX X9,CDBPC,X8 LINK TO FIRST PARAMETER (ELT)
LX X9,PBLINK,X9 LINK TO SECOND PARAMETER (FILE)
LX X9,PBLINK,X9 LINK TO MODE SPECIFICATION
TE,U A11,CYCLE IS IT A 'CYCLE' COMMAND ?
J SCNST NO. DON'T HAVE TO CHECK IT
LA A0,PBVAL,X9 LOAD SPECIFIED CYCLE RETENTION
TNZ,U 0,A0 IS IT ZERO ?
LA,U A0,1 YES. CHANGE TO ONE
SA A0,PBVAL,X9 REPLACE VALUE IN PARAMETER PACKET
TLE,U A0,64 IS IT WITHIN RANGE ?
J SCNST YES. BUY IT
E$MSG CYCME EDIT MESSAGE
E$DECV PBVAL,X9 EDIT ERRONEOUS SPECIFICATION
E$MSG CYCM1 GET REST OF MESSAGE TEXT
LX X5,CDIMG,X8 LOAD IMAGE BUFFER ADDRESS
LMJ X6,ESNV EDIT THE STATEMENT NUMBER
R$PRT 1 PRINT THE MESSAGE
LA,U A0,63 LOAD UPPER LIMIT ON RETENTION
SA A0,PBVAL,X9 STORE INTO THE PARAMETER BUFFER
.
SCNST LA,U A10 CLEAR SEQUENCE NUMBER
LA,U A9 CLEAR ELEMENTS CHANGED COUNT
.
EMSCAN AA,U A10,1 INCREMENT SEQUENCE NUMBER
LA A0,A14 GET FTI ADDRESS
LA A1,A10 LOAD TARGET SEQUENCE NUMBER
etnl . look up element table item
J SCANE PROBABLY END OF TABLE
TP EIFLG,A0 IS ELEMENT DELETED ?
J EMSCAN YES. IGNORE IT
LX,U X6,,A0 NO. SAVE ELEMENT ITEM ADDRESS
LX X5,A12 LOAD SELECTION CRITERIA
LMJ X11,SELECT SEE IF ELEMENT IS CHOSEN
J EMSCAN NOT CHOSEN. GET NEXT ELEMENT
.
. WE HAVE SELECTED AN ELEMENT. CHANGE THE ENTRY
. ACCORDING TO THE COMMAND, AND REWRITE IT.
.
TE,U A11,CYCLE IS IT 'CYCLE' ?
J CHKTYP NO. SEE IF IT'S 'TYPE'
LA A0,EITYP,X6 LOAD THE ELEMENT TYPE
tg,u a0,ty$rel is it symbolic or a PROC ?
J EMSCAN NO. DON'T CYCLE IT
LA A0,PBVAL,X9 LOAD DESIRED CYCLE MAX
SA A0,EICLIM,X6 MODIFY ENTRY
J REPLELT GO AND REWRITE THE ENTRY
.
CHKTYP TE,U A11,TYPESET IS IT CHANGE TYPE COMMAND ?
IERR . NO. THIS IS LAST TYPE NOW
LA A0,EITYP,X6 LOAD ELEMENT TYPE
tne,u a0,ty$omn is the element omnibus ?
j omntyp yes. go test for changing subtype
TG,U A0,TY$REL NON-SYMBOLIC ?
J EMSCAN YES. DON'T ALLOW TYPE CHANGE
LA A0,PBVAL,X9 LOAD DESIRED TYPE
TLE,U A0,TY$REL GREATER THAN SYMBOLIC TYPES ?
TLE,U A0,TY$SYM+1 (CHECK FOR SUBTYPE)
J SYMDES YES. SET TYPE
.
. DESIRED TYPE IS PROC. CYCLE ELEMENT TO ONE
.
LA,U A0,1 LOAD CYCLE MAX FOR PROC
SA A0,EICLIM,X6 SET CYCLES TO KEEP FOR A PROC
LA A0,PBVAL,X9 LOAD THE DESIRED TYPE
SA A0,EITYP,X6 PUT TYPE IN ENTRY
J REPLELT REWRITE ELEMENT ITEM
.
. DESIRED TYPE IS SYMBOLIC
.
SYMDES LA A0,EITYP,X6 LOAD CURRENT TYPE
TE,U A0,TY$SYM IS IT CURRENTLY SYMBOLIC ?
J PRKSET NO. CHANGE FROM PROC TO SYMBOLIC
PRKSR LA,U A0,TY$SYM LOAD SYMBOLIC MAIN TYPE
SA A0,EITYP,X6 PUT IN ITEM
LA,U A0 LOAD ZERO PROCESSOR CODE
TZ,S4 PBVAL,X9 IS IT A SUBTYPE ?
setstyp LA,S6 A0,PBVAL,X9 YES. LOAD PROCESSOR CODE
SA A0,EIPCOD,X6 SET PROCESSOR CODE IN ITEM
J REPLELT REWRITE ELEMENT ITEM
.
. CHANGE PROC TO SYMBOLIC
.
PRKSET LA,U a0,cyclim$ LOAD SYSTEM CYCLE LIMIT
SA A0,EICLIM,X6 PUT IN ELEMENT ITEM
. ** POSSIBLY DELETE PROC ENTRIES **
J PRKSR RETURN TO CHANGE TYPE
.
. If the element is omnibus and the desired type is a subtype,
. we change the processor code for the element to that
. specified by the subtype.
.
omntyp tnz,s4 pbval,x9 is this a subtype name ?
j emscan no. can't change omnibus to major type
j setstyp yes. go set processor code
.
. REWRITE ELEMENT TABLE ENTRY
.
REPLELT LA A0,A14 LOAD FTI ADDRESS
AA,U A9,1 INCREMENT ELEMENTS CHANGED
ptewt . REWRITE LAST REFERENCED ITEM
J BSPERR BSP ERROR. PRINT MESSAGE
J EMSCAN PROCESS NEXT ELEMENT
.
. END OF ELEMENT TABLE SCAN
.
SCANE TE,U A0,014 IS IT END OF TABLE ?
J BSPERR NO. OTHER BSP ERROR
LMJ A1,EBUFRL RELEASE ELEMENT TABLE BUFFERS
JNZ A9,RDX WERE ANY ELEMENTS CHANGED ?
E$MSG NELC NO. EDIT MESSAGE
LA A0,CDBPC,X8 LOAD PARAMETER HEAD
LA A0,ELFDT,A0 GET FDT ADDRESS
LMJ X11,FIST APPEND FILE AND STATEMENT
J RDC COMPLETE THE COMMAND
.
RDX R$DITX . TERMINATE THE EDITOR
RDC COMPLETE . DONE WITH THIS COMMAND
.
.
PURE DATA
.
CYCME 'ONLY 63 CYCLES MAY BE KEPT. 63 USED INSTEAD OF !'
CYCM1 ' SPECIFIED IN STATEMENT !'
NELC 'NO ELEMENTS CHANGED IN !'
END