plato:source:plaopl:conden
Table of Contents
CONDEN
Table Of Contents
- [00005] TUTOR LESSON CONDENSOR
- [00035] COMMENTS
- [00051] CONDENSOR MAIN LOOP
- [00131] -DIE- KILL CONDENSOR
- [00206] ROLL-OUT
- [00217] CRO - CONDENSOR ROLLOUT.
- [00311] ROLL-IN
- [00322] CRI - CONDENSOR ROLLIN.
Source Code
- CONDEN.txt
- 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
plato/source/plaopl/conden.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator