CONDEN
* /--- FILE TYPE = E
* /--- BLOCK CONDEN 00 000 81/07/18 07.34
IDENT CONDEN
TITLE TUTOR LESSON CONDENSOR
LCC OVERLAY(0,0)
*
* LOW-CORE DEFINITIONS ONLY
*
* CANNOT USE ANY MACROS IN THIS DECK WHICH ARE
* DEFINED IN THE COMMON SYMBOL TABLE BECAUSE IT
* HAS NOT BEEN ASSEMBLED YET.
*
*
*CALL SYSCON
*CALL PARAMC
*CALL PCFTEXT
*CALL PCTEXT
*CALL LOWTXT
*
USE
*
*
EXT CLOSE
EXT CMPGO
EXT CONDENS
EXT ECSPRTY
EXT S=BMSG
EXT S=CM
EXT S=KILL
EXT S=SETR
EXT S=WAIT
*
* /--- BLOCK COMMENTS 00 000 75/09/29 21.38
TITLE COMMENTS
*
*
* *COREQF* = PLATO TO CONDENSOR REQUESTS
* 1 = KILL CONDENSOR
* 2 = CONDENSOR ROLL-OUT
* 3 = CONDENSOR ROLL-IN
* 4 = NO-OP
* 5 = CONDENSE LESSON
*
* *PLREQF* = CONDENSOR TO PLATO REQUESTS
* 1 = NORMAL END OF CONDENSE
* 2 = UNUSED
* 3 = CONDENSE ABORTED
*
* /--- BLOCK CONDEN 00 000 81/07/21 01.40
TITLE CONDENSOR MAIN LOOP
*
*
*
ENTRY CONDEN,BYE
*
*
* MAIN LOOP - INITIALIZE AND DRIVE CONDENSOR
*
*
CONDEN SA1 APLACOM
SX0 COREQF CHECK IF REQUEST PRESENT
IX0 X0+X1
SA0 ITEMP
+ RE 1
RJ ECSPRTY
SA1 A0 LOAD REQUEST TYPE
SB1 X1
NG B1,RETURN EXIT IF BAD REQUEST
SB2 X1-C.NOPT-1
PL B2,RETURN EXIT IF BAD REQUEST
JP B1+*+1
*
+ EQ ONWARD NOTHING TO DO YET
+ EQ DIE SELF-ABORT
+ EQ ROLLO ROLL-OUT
+ EQ ROLLI ROLL-IN
+ EQ RETURN NO-OP
+ EQ COND CONDENSE
*
* /--- BLOCK CONDEN 00 000 81/07/21 01.48
*
COND SA1 ROLLF LOAD ROLL IN/OUT FLAG
ZR X1,COND1 IF ROLLED IN
RJ CRI ROLLIN
*
COND1 RJ CONDENS CONDENSE THE LESSON
RJ CLOSE
RJ CMPGO CENTRAL MICRO PLATO CONDENSE
RJ CLOSE
* FLAG CONDENSE COMPLETE FOR PLATO.
SA5 APLACOM (X5) = PLATO COMUNICATION AREA
SX0 PLREQF
SA1 PLREQC PLATO REQUEST CODE
BX6 X1
SA6 SVECS
SA0 A6
IX0 X0+X5
+ WE 1
RJ ECSPRTY
SB1 B0
RJ S=BMSG CLEAR THE B-DISPLAY
RETURN SA1 APLACOM CLEAR REQUEST FLAG
SX0 COREQF
IX0 X0+X1
SA0 =0
+ WE 1
RJ ECSPRTY
ONWARD SB7 100 (B7) = DELAYS UNTIL ROLLOUT
*
RET1 SB1 1
RJ S=WAIT
SA1 APLACOM CHECK IF A REQUEST PRESENT
SX0 COREQF
IX0 X1+X0
SA0 ITEMP
+ RE 1 READ REQUEST FLAG
RJ ECSPRTY
SA1 A0 CHECK IF A REQUEST PENDING
NZ X1,CONDEN
SB7 B7-1
PL B7,RET1 IF NOT TIME TO ROLL OUT
RJ CRO ROLLOUT
SB7 377777B
EQ RET1
*
*
* /--- BLOCK -DIE- 00 000 81/07/20 23.11
TITLE -DIE- KILL CONDENSOR
*
*
* -DIE-
* CONDENSOR SELF-ABORT
*
*
DIE SA1 APLACOM CLEAR REQUEST FLAG
SX0 COREQF
IX0 X0+X1
SA0 IZER
WE 1
RJ ECSPRTY
SX0 PC.INFO
IX0 X0+X1
+ WE 2
RJ ECSPRTY
SX0 PLREQF
IX0 X0+X1
SA0 =3 3 = ABNORMAL TERMINATION
+ WE 1
RJ ECSPRTY
* WAIT FOR REQUEST TO COMPLETE
DIE1 SB1 20
RJ S=WAIT
RE 1
RJ ECSPRTY
SA1 A0
NZ X1,DIE1 IF NOT COMPLETE YET
* CLEAR MASTOR REQUEST BUFFER
SB1 =0
RJ S=SETR
* RELEASE ECS STORAGE
BYE SA1 APLACOM RELEASE ECS STORAGE
MX6 30 CLEAR OUT JOB NAME
BX1 -X6*X1
SX6 LPRMLTH LENGTH OF ECS LESSON HEADER
IX6 X1-X6
SX1 2 SET RELEASE FUNCTION
LX1 48
BX6 X1+X6
SA6 IWK
SA0 A6
SA1 CONDN (X1) = CONDENSOR ORDINAL
SX0 COECRQ+X1 BIAS TO THIS CONDENSORS WORD
WE 1
RJ ECSPRTY
DIE2 SB1 20
RJ S=WAIT
RE 1
RJ ECSPRTY
SA1 A0
PL X1,DIE2 IF NOT RELEASED YET
* CLEAR THIS CONDENSORS COMMUNICATION ADDRESS
SA1 CONDN
AX1 36 (X1) = COMMUNICATION ADDRESS
BX0 X1
SA0 IZER
WE 1
RJ ECSPRTY
RJ S=KILL KILL CONDENSOR
*
*
IZER BSSZ 2
*
*
* /--- BLOCK ROLL-OUT 00 000 81/07/17 23.53
TITLE ROLL-OUT
*
*
* -ROLLO-
* ROLL CONDENSOR OUT TO ECS
*
*
ROLLO RJ CRO
EQ RETURN
CRO SPACE 4,10
** CRO - CONDENSOR ROLLOUT.
*
* ROLLOUT THE CONDENSOR TO ECS.
*
* THE CONDENSOR IS WRITTEN IN 1000B BLOCKS IN ORDER
* TO REDUCE THE CHANCES OF THE ECS TRANSFERS BEING
* INTERRUPTED AND RESTARTED BY EXCHANGE JUMPS.
*
* ENTRY (RUNCFL) = 42/UNUSED, 18/CONDENSOR FL.
*
* EXIT (RADD) = CM FWA OF ROLLOUT.
* (RLTH) = WORDS ROLLED OUT.
* (ROLLF) = 1.
*
* USES X - 0,1,2,6,7.
* A - 0,1,2,6,7.
* B - 2,3.
*
* CALLS S=BMSG, S=CM.
*
* WRITE THE LAST PORTION TO ECS.
CRO3 WE B2
RJ ECSPRTY
* REDUCE CM FL.
LX6 30 NEW FL PARAMETER
SA6 NEWCFL
SB1 A6
RJ S=CM
* CLEAR THE B-DISPLAY MESSAGE.
SB1 B0
RJ S=BMSG
CRO PS ENTRY/EXIT
* CHECK IF CONDENSOR ALREADY ROLLED OUT.
SA1 ROLLF
NZ X1,CRO RETURN IF ALREADY ROLLED OUT
* MARK THE CONDENSOR AS ROLLED OUT.
SA2 APLACOM
SX0 COROLL
SX6 1
IX0 X0+X2
SA6 A1
SA0 =10LROLLED OUT
+ WE 1
RJ ECSPRTY
* COMPUTE CM FWA FOR ROLLOUT. *ROLLAD* IS THE
* MINIMUM CM FWA.
SA1 RUNCFL CONDENSOR FL
SA2 ROLBUFL ECS ROLLOUT BUFFER LENGTH
SX1 X1+
IX7 X2-X1 NEGATIVE OF POSSIBLE CM FWA
BX6 -X7
SX2 X7+=XROLLAD COMPARE WITH MINIMUM CM FWA
NG X2,CRO1 IF CM FWA NOT TOO SMALL
SX6 =XROLLAD SET TOO MINIMUM CM FWA
CRO1 SA0 X6 ROLLOUT CM FWA
SA6 RADD
* /--- BLOCK ROLL-OUT 00 000 77/11/13 21.59
* COMPUTE ROLLOUT LENGTH.
IX7 X1-X6
SA7 RLTH
* WRITE TO ECS IN 1000B WORD BLOCKS.
SA1 ROLLBUF ECS ROLLOUT BUFFER FWA
SB2 X7 TOTAL LENGTH
BX0 X1
SB3 1000B
LE B2,B3,CRO3 IF .LE. 1000B WORDS TO WRITE
SX2 B3+
CRO2 WE B3
RJ ECSPRTY
IX0 X0+X2 NEXT ECS ADDRESS
SA0 A0+1000B NEXT CM ADDRESS
SB2 B2-B3 REMAINING LENGTH
GT B2,B3,CRO2 IF .GT. 1000B WORDS REMAINING
EQ CRO3 WRITE THE LAST PORTION
* /--- BLOCK ROLL-IN 00 000 81/07/18 08.26
TITLE ROLL-IN
*
*
* -ROLLI-
* ROLL CONDENSOR BACK TO CM FROM ECS
*
*
ROLLI RJ CRI
EQ RETURN
CRI SPACE 4,10
** CRI - CONDENSOR ROLLIN.
*
* ROLLIN CONDENSOR FROM ECS.
*
* THE CONDENSOR IS READ IN 1000B BLOCKS IN ORDER
* TO REDUCE THE CHANCES OF THE ECS TRANSFERS BEING
* INTERRUPTED AND RESTARTED BY EXCHANGE JUMPS.
*
* ENTRY (RUNCFL) = 42/UNUSED, 18/ ROLLED IN CONDENSOR FL.
* (RADD) = CM FWA FOR ROLLIN.
* (RLTH) = ROLLIN LENGTH.
*
* EXIT (ROLLF) = 0.
*
* USES X - 0,1,2,3,4,6,7.
* A - 0,1,2,3,6,7.
* B - 2,3.
*
* CALLS S=CM.
*
* READ LAST PORTION.
CRI2 RE B2
RJ ECSPRTY
CRI PS ENTRY/EXIT
* CHECK IF ALREADY ROLLED IN.
SA1 ROLLF
ZR X1,CRI RETURN IF ALREADY ROLLED IN
* MARK CONDENSOR ROLLED IN.
SA2 APLACOM
SX0 COROLL
MX7 0
SA7 A1+
SA0 A7
IX0 X0+X2
+ WE 1
RJ ECSPRTY
* REQUEST ROLLED IN FL.
SA1 RUNCFL
SX6 X1
LX6 30
SA6 NEWCFL
SB1 A6
RJ S=CM
* READ CONDENSOR FROM ECS IN 1000B WORD BLOCKS.
SA1 RADD CM FWA
SA2 RLTH ROLLIN LENGTH
SA3 ROLLBUF ECS FWA
SB3 1000B
SB2 X2
SA0 X1
BX0 X3
SX4 B3
LE B2,B3,CRI2 IF .LE. 1000B WORDS TO READ
CRI1 RE B3
RJ ECSPRTY
SA0 A0+B3 NEXT CM ADDRESS
IX0 X0+X4 NEXT ECS ADDRESS
SB2 B2-1000B REMAINING WORDS TO READ
GT B2,B3,CRI1 IF MORE 1000B WORDS REMAIN
EQ CRI2 READ THE LAST PORTION
* /--- BLOCK STORAGE 00 000 81/07/21 01.41
*
*
IWK BSS 1
NEWCFL BSS 1
*
ENTRY RUNCFL
RUNCFL BSS 1
*
RLTH BSS 1
RADD BSS 1
*
ENTRY MESSBUF
MESSBUF DATA 0,0
*
*
END INIT