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