.
. DYNAMIC FACILITIES INTERFACE
.
.
. (C) Copyright 1972-1978 John Walker
.
. This software is in the public domain
.
AXR$
DEFUNCT$
FANG
PURE CODE
.
. FAC COMMAND SERVICE
.
FACP* REMOVE PARQUE GET PARAMETER
TNE,U A1,PARQUE PARAMETER OMITTED ?
J FACLST YES. EDIT LAST STATUS
LA A5,PBVAL,A1 LOAD STATUS SUBMITTED BY USER
BRELP A1 RELEASE THE PARAMETER
facpl errpr$p errpkt ask system to explain reject
J ICOUT END OF THIS COMMAND
.
FACLST LA A5,CSFSTBIT LOAD CSF$ STATUS BITS
JNZ A5,FACPL PROCESS IF ANY SPECIFIED
F$DT1 fll$,fl$ NONE. SET UP THE EDITOR
F$MSG NOREJY EDIT THE MESSAGE
F$PRT 1 INFORM USER NO REJECTS SO FAR
J ICOUT END OF THIS COMMAND
.
. OPTION EDITOR
.
MBO* TNZ CWOPTION ANY OPTIONS ?
J 0,X5 NO. DON'T EDIT ANYTHING
F$CHAR ',' EDIT A COMMA
LA,U A5,'A' GET THE LOW BIT'S LETTER
LA A4,CWOPTION LOAD OPTION BITS
LSSL A4,10 SHIFT 'A' INTO SIGN POSITION
MBO1 JP A4,SMBO DON'T EDIT IF NOT PRESENT
F$CHAR A5,,W EDIT THE CHARACTER
SMBO LSSL A4,1 SHIFT OFF THE BIT
AA,U A5,1 INCREMENT LETTER TO EDIT
JNZ A4,MBO1 KEEP GOING IF MORE OPTIONS
J 0,X5 RETURN
.
. STRING EDITOR
.
COPYS REMOVE PARQUE REMOVE A PARAMETER
TNE,U A1,PARQUE ANY PARAMETER SPECIFIED ?
J 0,X6 NO. SKIP EDITING
LA,U A3,,A1 SAVE ADDRESS
LA,U A0,PBSS,A3 LOAD STRING START ADDRESS
LA A1,PBVAL,A3 LOAD LENGTH IN CHARACTERS
F$COPY . COPY THE PARAMETER
BRELP A3 RELEASE THE PARAMETER BUFFER
J 0,X6 RETURN
.
. FACILITIES REQUEST SUBROUTINE
.
CSF* LA A1,PARTBL LOAD OPTIONS
TOP A1,(OPTION('C')) IS THE 'C' OPTION ON ?
J DOCSF NO. DO THE CSF$ CALL
LA A1,A0 SAVE THE CSF$ PARAMETER
LXI,U A0,0116 LOAD SPACING AND LENGTH
PRINT$ . LOG THE IMAGE
LA A0,A1 LOAD BACK THE CSF$ PARAMETER
DOCSF CSF$ . SUBMIT THE REQUEST
J 1,X11 RETURN
.
. CSF$ STATUS EDITOR
.
CSFST* JZ A0,,X5 RETURN IF NO BITS SET
SA A0,CSFSTBIT SAVE STATUS BITS FOR FAC COMMAND
SA A0,A5 SAVE STATUS
R$DIT . SET UP EDITOR
TP A5 REJECT OR WARNING ?
J REJT REJECT.
E$MSG WARN EDIT WARNING
stj jndem stj1 skip if we'll print anyway
e$octf 12,a5 edit status bits for demand
E$SKIP 1 SKIP A SPACE
stj1 E$COPY 50,LINE EDIT SOME OF THE OFFENDING COMMAND
JNDEM BAMMO EDIT FULL DIAGNOSTIC ?
R$PRTX 1 PRINT THE LINE
J 0,X5 RETURN
REJT E$MSG REJCM EDIT REJECTED
J STJ PROCESS STATUS
bammo r$prtx 1 print message and terminate editor
errpr$p errpkt ask system to explain error
j 0,x5 return to caller
.
. STATUS EDITOR FOR REENTRANT CALLS ON CSF. ASSUMES ENTERED IN
. RDIT$ MODE WITH CSF$ IMAGE EDITED INTO BUFFER. EXITS WITH
. RDIT$ MODE OFF.
.
CSFSTR* JZ A0,CSFREN RETURN IF NOTHING TO EDIT
SA A0,CSFSTBIT SAVE CSF$ REJECT STATUS FOR FAC COMMAND
SA A0,A5 SAVE STATUS FOR ERROR MESSAGE EDITOR
BGET 10 ALLOCATE A MESSAGE SAVE BUFFER
LX,U X6,,A0 SAVE ADDRESS OF BUFFER
LXI,U A0,1 LOAD INCREMENT FOR BUFFER
LA,H2 A1,,X1 LOAD IMAGE BUFFER FOR RDIT$
LXI,U A1,1 GET INCREMENT FOR EDITED IMAGE
LR,U R1,10 GET COUNT TO SAVE TEN WORDS
BT A0,,*A1 COPY EDITED COMMAND IMAGE TO BUFFER
E$DITX . LEAVE EDIT MODE
E$DIT . RE-ENTER EDIT MODE, CLEARING IMAGE
JN A5,REJCTR EDIT REJECT IF STATUS WAS REJECT
E$MSG WARN EDIT WARNING MESSAGE
stjr jndem stjr1 skip if we'll print messages
e$octf 12,a5 demand. just edit error code
E$SKIP 1 SKIP ONE SPACE AFTER STATUS
stjr1 E$COPY 50,,X6 COPT IMAGE TO BUFFER
BRELP X6 RELEASE THE TEMPORARY IMAGE BUFFER
JNDEM BAMMO EDIT BITS INTO MESSAGE FOR BATCH
R$PRTX 1 PRINT AND LEAVE EDIT MODE
J 0,X5 RETURN TO CALLER
.
REJCTR E$MSG REJCM EDIT REJECT MESSAGE
J STJR EDIT REST OF MESSAGE
.
CSFREN R$DITX . TERMINATE EDIT MODE
J 0,X5 RETURN TO CALLER
.
.
PURE DATA
WARN 'CSF$ WARNING: !'
REJCM 'CSF$ REJECT: !'
ILCM 'CSF$ BAD FORMAT: !'
.
NOREJY 'NO FACILITY REQUEST DIAGNOSTICS HAVE BEEN ISSUED SO FAR.&'
END