Trailing-Edge
-
PDP-10 Archives
-
bb-bt99g-bb
-
sprout.c11
There is 1 other file named sprout.c11 in the archive. Click here to see a list.
REP 34/1 ;11C1
SPOEDT==2541 ;EDIT LEVEL
WIT
SPOEDT==2542 ;EDIT LEVEL
INS 235/3 ;11C2
2542 SPROUT's SPFORM.INI processing doesn't let the operator know
what's going on if the file's missing or no matching forms type,
etc.
SPR 10-35035 GCO 10145 10-Jan-85 /LWS
REP 3/15 ;11C3
WIT
;**;[2542] Change DEPBP /LWS
REP 7/15 ;11C4
IBP TEXTBP ;OK -- INCR POINTER
DPB S1,TEXTBP ;STORE BYTE
$RETT ;AND RETURN
WIT
IDPB S1,TEXTBP ;[2542] STORE BYTE
$RETT ;AND RETURN
REP 6/40 ;11C5
MOVE S2,[POINT 7,J$XTBF(J)] ;GET POINTER TO WTOR BUFFER.
MOVEM S2,TEXTBP ;AND SAVE IT FOR DEPBP.
MOVEI S2,TXT$LN*5 ;GET MAXIMUM BYTE COUNT
MOVEM S2,TEXTBC
WIT
;**;[2542] Change code after FORMS+3L. /LWS
PUSHJ P,SETTBF ;[2542] SETUP TEXT BUFFER OPR RESPONSE
REP 17/40 ;11C6
SKIPE S1 ;NO NEED TO CHANGE FORMS.
$TEXT (DEPBP,<Please load forms type '^W/J$FORM(J)/'>)
WIT
JUMPE S1,FORM.1 ;[2542] NO NEED TO CHANGE FORMS.
FORM.0: HRRZ S1,STREAM ;[2542] GET STREAM NUMBER
$WTOR (<Please load forms type '^W/J$FORM(J)/'>,<^I/FRMMSG/>,@JOBOBA(S1),JOBWAC(S1)) ;[2542]
$DSCHD (PSF%OR) ;[2542] WAIT FOR RESPONSE
TXNE S,ABORT ;[2542] ABORTED?
$RETT ;[2542] YES, JUST RETURN
MOVEI S1,FRMANS ;[2542] GET POINTER TO ANSWER TABLE
PUSHJ P,GETANS ;[2542] GET DISPATCH ADDRESS
JUMPT (S1) ;[2542] DISPATCH IF OK
PUSHJ P,SETTBF ;[2542] CLEAR BUFFER FOR OPR RESPONSE
JRST FORM.0 ;[2542] INVALID ANSWER, ASK AGAIN.
REP 26/40 ;11C7
MOVE S1,TEXTBP ;GET THE WTOR BYTE POINTER.
CAMN S1,[POINT 7,J$XTBF(J)] ;IS THERE A MESSAGE FOR THE OPERATOR ??
$RETT ;NO,,RETURN.
$TEXT (DEPBP,<Type 'RESPOND ^7/[.CHLAB]/number^7/[.CHRAB]/ PROCEED' when ready^0>)
HRRZ S1,STREAM ;GET STREAM NUMBER
$WTOR (,<^T/J$XTBF(J)/>,@JOBOBA(S1),JOBWAC(S1)) ;SEND THE WTOR.
$DSCHD (PSF%OR) ;WAIT FOR OPERATOR RESPONSE.
$RETT ;RETURN...
FRMINI: $SAVE <T1,T2,T3,T4> ;PRESERVE TEMPORARIES
WIT
MOVEI S1,J$XERR(J) ;[2542] GET POINTER TO ERROR TEXT
HRLI S1,(POINT 7,0) ;[2542] MAKE INTO BYTE POINTER
CAMN S1,TEXTBP ;[2542] ANY TEXT?
$RETT ;[2542] NO, RETURN
FORM.3: HRRZ S1,STREAM ;[2542] GET STREAM NUMBER
$WTOR (<^T/J$XERR(J)/>,<^I/FERMSG/>,@JOBOBA(S1),JOBWAC(S1)) ;[2542] SEND THE WTOR.
$DSCHD (PSF%OR) ;WAIT FOR OPERATOR RESPONSE.
TXNE S,ABORT ;[2542] ABORTED?
$RETT ;RETURN...
MOVEI S1,FERANS ;[2542] NO, GET ADDRESS OF CHOICE BLOCK
PUSHJ P,GETANS ;[2542] LOOK FOR MATCH
JUMPT (S1) ;[2542] DISPATCH
PUSHJ P,SETTBF ;[2542] SET BUFFER AGAIN
JRST FORM.3 ;[2542] ASK AGAIN
FORM.4: TXO S,RQB!ABORT ;[2542] REQUEUE THE JOB
MOVE S1,J$FPFM(J) ;[2542] GET PREVIOUS FORMS TYPE
MOVEM S1,J$FORM(J) ;[2542] RESTORE IT
HRRZ S1,STREAM ;[2542] GET STREAM
$WTOJ (<Requeuing job>,^R/.EQJBB(J)/,@JOBOBA(S1)) ;[2542] SEND THE WTOR.
$RETF ;[2542] RETURN
;[2542] ERROR MESSAGES TO OPR AND RESPONSE CHOICE BLOCKS
FRMMSG: ITEXT (<^R/.EQJBB(J)/^T/@FRMTXT/>) ;[2542]
FRMTXT: [ASCIZ/
Type 'RESPOND <number> PROCEED' to continue when ready/] ;[2542]
FRMANS: $STAB ;[2542]
KEYTAB (FORM.1,PROCEED) ;[2542]
$ETAB ;[2542]
FERMSG: ITEXT (<^R/.EQJBB(J)/^T/@FERTXT/>) ;[2542]
FERTXT: [ASCIZ/
Type 'RESPOND <number> REQUEUE' to requeue the job
Type 'RESPOND <number> PROCEED' to continue anyway/] ;[2542]
FERANS: $STAB ;[2542]
KEYTAB (.RETT,PROCEED) ;[2542]
KEYTAB (FORM.4,REQUEUE) ;[2542]
$ETAB ;[2542]
;**;[2542] Add GETANS routine and WTOR text
;GETANS - Compare operator responses to WTOR's with what's expected.
;
; Call: S1 = Address of response choice block
; Returns TRUE S1 = Dispatch address from response choice block
; FALSE No match
GETANS: HRROI S2,J$XTBF(J) ;[2542] POINT TO ANSWER
$CALL S%TBLK ;[2542] LOOKUP THE ANSWER
TXNE S2,TL%NOM+TL%AMB ;[2542] FIND IT OK?
$RETF ;[2542] NOPE..TRY AGAIN
PUSHJ P,SETTBF ;[2542] RESET TEXT BUFFER
HRRZ S1,(S1) ;[2542] GET THE ADDRESS
$RETT ;[2542] RETURN IT
FRMINI: $SAVE <T1,T2,T3,T4> ;PRESERVE TEMPORARIES
PUSHJ P,SETEBF ;[2542] GO SET UP ERROR TEXT BUFFER
REP 36/41 ;11C8
JUMPF .RETF ;RETURN IF FILE NOT FOUND
WIT
JUMPF FILERR ;[2542] GO SET ERROR TEXT IF PROBLEMS
REP 40/41 ;11C9
JUMPF FRMIEX ;EXIT ON EOF
WIT
JUMPF FRMI3A ;[2542] EXIT ON EOF
REP 45/41 ;11C10
JUMPF FRMIEX ;EXIT ON EOF
JRST FRMI.1 ;DO NEXT LINE
FRMI.3: $CALL FH$SIX ;GET THE FORMS NAME
JUMPF FRMIEX ;EOF!!
WIT
JUMPT FRMI.1 ;[2542] DO NEXT LINE
PJRST FRMI3A ;[2542] COMPLAIN
FRMI.3: $CALL FH$SIX ;GET THE FORMS NAME
JUMPF FRMI3A ;[2542] EOF!!
REP 53/41 ;11C11
JRST FRMI.2 ;NO -- END LINE
WIT
$CALL FH$EOL ;[2542] END THE LINE
JUMPT FRMI.1 ;[2542] LOOK FOR FORMS ON NEW LINE
FRMI3A: GETLIM T2,.EQLIM(J),FORM ;[2542] GET FORMS TYPE AGAIN
$TEXT (DEPBP,<Forms ^W/T2/ not found in SPFORM.INI for ^W/J$LDEV(J)/^0>) ;[2542]
PJRST FRMIEX ;[2542] CLOSE FILE AND RETURN
REP 62/41 ;11C12
JUMPF FRMIEX ;EOF
JRST FRMI.4 ;AND LOOP
WIT
JUMPT FRMI.4 ;[2542] AND LOOP
PJRST FRMERR ;[2542] BAD FILE FORMAT
REP 76/41 ;11C13
$WTOJ (SPFORM.INI Error,<bad format>,@JOBOBA(S1)) ;TELL OPR
WIT
$TEXT (DEPBP,<SPFORM.INI format error^0>) ;[2542] TELL OPR
INS 81/41 ;11C14
FILERR: $TEXT (DEPBP,<SPFORM.INI problems, ^E/S1/^0>) ;[2542] SET TEXT
$RETF ;[2542] RETURN
REP 8/42 ;11C15
CAIN T2,'REM' ;DOES IT SAY "REMOTE"?
SKIPL J$LREM(J) ;YES, ARE WE REMOTE
SKIPA ;NO!!!
JRST FRMSWI ;YES!!
WIT
CAIE T2,'REM' ;[2542] DOES IT SAY "REMOTE"?
SKIPA ;[2542] NO
SKIPL J$LREM(J) ;[2542] YES, ARE WE REMOTE
REP 21/42 ;11C16
JUMPF FRMIEX ;EOF, RETURN
JUMPE T1,FRMERR ;BAD FORMAT
JRST FRMI.7 ;AND LOOP AROUND
WIT
JUMPF FRMI.9 ;[2542] EOF, COMPLAIN
SKIPE T1 ;[2542] NOT ANOTHER LOCATOR
JRST FRMI.7 ;AND LOOP AROUND
FRMI.9: GETLIM T2,.EQLIM(J),FORM ;[2542] GET FORMS TYPE AGAIN
$TEXT (DEPBP,<No 'locators' in SPFORM.INI match ^W/J$LDEV(J)/, forms ^W/T2/^0>) ;[2542]
PJRST FRMIEX ;[2542] CLOSE FILE AND RETURN
SUM 157642