plato:source:plaopl:csys
Table of Contents
CSYS
Table Of Contents
- [00005] CONDENSOR SYSTEM INTERFACE
- [00006] SYMBOL DEFFINITIONS
- [00067] SYSTEM INTERFACE ROUTINES
- [00391] S=SETR - SET ADDRESS OF MASTOR REQUEST BUFFER
Source Code
- CSYS.txt
- CSYS
- * /--- FILE TYPE = E
- * /--- BLOCK CSYS 00 000 79/02/14 15.07
- IDENT CSYS
- TITLE CONDENSOR SYSTEM INTERFACE
- TITLE SYMBOL DEFFINITIONS
- *
- SST
- SYSCOM DEFINE INSTALATION PARAMS
- *
- *
- *
- *CALL AIDTEXT
- *CALL COMSPRD
- *CALL COMSSSD
- *
- *
- *
- *
- *CALL COMCSYS
- ENTRY S=SYS
- S=SYS EQU SYS=
- ENTRY S=WNB
- S=WNB EQU WNB=
- ENTRY S=RCL
- S=RCL EQU RCL=
- ENTRY S=MSGX
- S=MSGX EQU MSG=
- *CALL COMCCPM
- *CALL COMCWOD
- *
- *
- *
- *CALL SYSCON
- *CALL PLASMRC
- *
- *
- *CALL PCFTEXT
- *CALL PARAMC
- *CALL PCTEXT
- *CALL LOWTXT
- SPACE 3
- *** MASTOR MAKE MASTOR REQUEST
- *
- * MAKE REQUESTS TO MASTOR
- *
- PURGMAC MASTOR
- MACREF MASTOR$
- MASTOR MACRO BUF,REQ,P1,P2
- MACREF MASTOR
- SX6 REQ
- LX6 60-12
- SA6 BUF
- IFC NE,*P1**,2
- SX6 P1
- SA6 BUF+1
- IFC NE,*P2**,2
- SX6 P2
- SA6 BUF+2
- SYSTEM "PPU.MAS",R,BUF
- RECALL BUF
- ENDM
- *
- *
- *
- * /--- BLOCK ROUTINES 00 000 81/06/25 04.17
- TITLE SYSTEM INTERFACE ROUTINES
- *
- *
- *
- * S=RCL GO INTO RECALL
- *
- *
- ENTRY S=RCL
- *
- *
- * S=BMSG OUTPUT B-DISPLAY MESSAGE
- *
- * ON ENTRY - B1 = ADDRESS OF MESSAGE
- *
- *
- ENTRY S=BMSG
- S=BMSG EQ *
- SB2 1
- RJ S=LOG
- EQ S=BMSG
- *
- *
- *
- *
- * S=MSG OUTPUT DAYFILE MESSAGE
- *
- * ON ENTRY - B1 = ADDRESS OF MESSAGE
- *
- *
- ENTRY S=MSG
- S=MSG EQ *
- SB2 B0
- RJ S=LOG
- EQ S=MSG
- *
- *
- *
- *
- * S=LOG OUTPUT DAYFILE MESSAGES
- *
- * ON ENTRY - B1 = ADDRESS OF MESSAGE
- * B2 = TYPE OF MESSAGE
- *
- *
- * MESSAGE TYPES -
- *
- * 0 = SYSTEM DAYFILE, USER DAYFILE, LINE 1
- * 1 = LINE 1 OF CONTROL POINT
- * 2 = LINE 2 OF CONTROL POINT
- * 3 = USER DAYFILE, LINE 1
- * 4 = ERROR LOG
- * 5 = ACCOUNT FILE
- *
- ENTRY S=LOG
- S=LOG EQ *
- SX1 B1
- MESSAGE X1,B2,R OUTPUT MESSAGE
- EQ S=LOG
- * /--- BLOCK ROUTINES 00 000 76/08/01 06.30
- *
- *
- *
- * S=WAIT RECALL FOR INDICATED TIME
- *
- * ON ENTRY - B1 = MILLISECOND TIME TO PAUSE
- *
- * NOTE - IF THE CPU RECALL PARAMETER (CR) IS LESS
- * THAN THE MINIMUM CLOCK *TICK* IN THE *CLOCKER*
- * ROUTINE OF PP/MRQ, WE WILL RECALL BEFORE THE CLOCK
- * CAN TICK, WHICH LOOKS LIKE THE CLOCKER HAS DIED.
- *
- *
- ENTRY S=WAIT
- S=WAIT EQ *
- SX6 B1 PICK UP TIME TO PAUSE
- NG X6,S=WAIT
- ZR X6,S=WAIT
- SA1 SYSCLOK
- *** DEBUG CODE
- *
- BX6 X1 (X6) = *SYSCLOK*
- SA6 OSYSCLK
- SX6 B1 RESTORE X6
- *
- *** DEBUG CODE
- IX6 X1+X6 COMPUTE END WAIT TIME
- SA6 ENDTIME
- SX6 10D WAIT AT LEAST 10 RECALLS
- SA6 DEADCLK BEFORE DECIDING CLOCK IS DEAD
- *
- SW10 RECALL
- *** DEBUG CODE
- *
- SA1 SYSCLOK CURRENT MSEC CLOCK
- BX6 X1
- SA1 OSYSCLK MSEC CLOCK BEFORE RECALL
- IX1 X1-X6 COMPARE
- NG X1,SW20 -- CURRENT .GT. PREVIOUS, OK
- MX6 -1 DECREMENT DEADMAN COUNTER
- SA1 DEADCLK
- IX6 X1+X6
- SA6 A1
- PL X6,SW30 -- NOT DEAD FOR 'N RECALLS
- * START CLOCK UP
- MX6 -1
- SA1 MSCKCNT (X1) = NUMBER OF TIMES STARTED
- IX6 X1-X6 (X6) = (X1) + 1
- SA6 A1 STORE *MSCKCNT*
- MASTOR SWK1,MS.SCK,B0 START MILLISECOND CLOCK
- SW20 BSS 0
- SX6 10D RESET CLOCK DEADMAN
- SA6 DEADCLK
- SA1 SYSCLOK STORE CURRENT MSEC CLOCK
- BX6 X1
- SA6 OSYSCLK
- SW30 BSS 0
- *
- *** DEBUG CODE
- SA1 SYSCLOK
- BX6 X1
- SA1 ENDTIME
- IX6 X6-X1
- NG X6,SW10 IF TIME IS NOT UP
- EQ S=WAIT
- *
- DEADCLK BSS 1 DEADMAN COUNTER FOR CLOCK
- *
- *
- *
- *
- * S=CTIME RETURN CPU TIME USED
- *
- * ON ENTRY - B1 - ADDRESS TO RETURN CLOCK
- *
- *
- ENTRY S=CTIME
- S=CTIME EQ *
- TIME B1
- * CONVERT TIME TO MILLISECONDS
- SA1 B1
- MX6 -12
- BX2 -X6*X1 (X2) = MILLISECONDS
- AX1 12
- MX6 -36
- BX1 -X6*X1 (X1) = SECONDS
- SX6 1000
- IX6 X6*X1
- * /--- BLOCK ROUTINES 00 000 76/08/01 06.30
- IX6 X6+X2
- SA6 A1
- EQ S=CTIME
- *
- *
- * /--- BLOCK ROUTINES 00 000 76/10/31 12.08
- *
- *
- *
- * S=CM OBTAIN CENTRAL MEMORY
- *
- * ON ENTRY - B1 = ADDRESS OF MEMORY REQUEST WORD
- *
- *
- ENTRY S=CM
- S=CM EQ *
- MX0 30
- SA1 B1
- BX6 X0*X1 SET UP ARGUMENT
- SA6 SWK1
- SX6 B1
- SA6 SWK2 SAVE ADDRESS OF ARGUMENT
- SB1 1
- MEMORY CM,SWK1,R
- RECALL SWK1
- MX0 30
- SA1 SWK1
- BX6 X0*X1
- SA2 SWK2
- SA6 X2
- MESSAGE =0,2,R CLEAR 2ND LINE MESSAGE
- SA1 SYSCLOK SAVE CLOCK
- BX6 X1
- SA6 SWK1
- RECALL IDLE
- SA1 SWK1 COMPARE CLOCKS
- SA2 SYSCLOK
- IX1 X1-X2
- NZ X1,S=CM IF STILL RUNNING
- MASTOR SWK1,MS.SCK,B0 START MILLISECOND CLOCK
- EQ S=CM
- * /--- BLOCK ROUTINES 00 000 79/02/14 15.11
- *
- *
- * S=READY LOGIC READY
- * AFFILIATES WITH PLATO AND SETS CPU PRIORITY
- *
- * ON ENTRY - B1 = ADDRESS OF CPU PRIORITY
- *
- *
- ENTRY S=READY
- S=READY EQ *
- SA1 B1 PICK UP CPU PRIORITY
- .NOS23 IFGE OSLEV,617D (NOS VERSION 2.3)
- BX6 X1
- .NOS23 ELSE
- .NOSV2 IFGE OSLEV,562D (NOS VERSION 2)
- SX2 PLSI INITIAL PLATO ID
- .NOSV2 ELSE (NOS VERSION 1)
- SX2 LSSS-1 PICK UP QUEUE PRIORITY
- .NOSV2 ENDIF
- LX2 30
- BX6 X1+X2 SET UP PRIORITY REQUEST
- .NOS23 ENDIF
- SA6 SWK1+1
- MASTOR SWK1,MS.PRI
- MODE 1 SET ERROR EXIT TYPE
- *
- SRDY1 BSS 0
- SA1 =4L"LGC.PLAT" PLATO LOGIC IDENTIFIER
- BX6 X1
- SA6 SWK1+1
- MX6 0 MARK FLAG REGISTER NOT REQUIRED
- SA6 SWK1+2
- MASTOR SWK1,MS.AFF AFFILIATE
- MX0 -11
- SA1 SWK1 CHECK REPLY CODE
- AX1 12
- BX1 -X0*X1 MASK OFF ERROR CODE
- ZR X1,SRDY2
- RECALL IDLE FOR A WHILE
- EQ SRDY1
- *
- * IDENTIFY THIS CONDENSOR AS A LOGIC. CONDENSOR
- * LOGIC NAMES CONSIST OF THE FOLLOWING --
- *
- * 12/*CO*
- * 6/MAINFRAME ORDINAL (CONFIG SYMBOL *MFORD*)
- * 6/NUMBER FROM 1 TO 9
- *
- SRDY2 BSS 0
- SX6 MS.MAS*10000B+MA.MFO
- LX6 60D-24D
- SA6 SWK1
- SYSTEM "PPU.MAS",R,SWK1
- RECALL SWK1
- * /--- BLOCK ROUTINES 00 000 79/02/14 15.23
- SA1 SWK1+1 (X1) = MF ORDINAL (INTEGER)
- SX2 1RA (X2) = FIRST MFORD (CHAR)
- IX6 X1+X2 (X6) = MF ORDINAL (CHAR)
- LX6 42 (X6) = 12/0,6/MIDCHAR,42/0
- * SX1 2RCO (X1) = 48/0,12/*CO*
- SA1 CONDNAM (X1) = 36/0,24/*COA1*
- AX1 12 (X1) = 48/0,12/*CO*
- LX1 48 (X1) = 12/*CO*,48/0
- BX6 X1+X6 (X6) = 12/*CO*,6/MIDCHAR,42/0
- SX1 1R1 (X1) = FIRST ORDINAL TO TRY
- SRDY2.1 BSS 0
- LX1 60-24 SHIFT ORDINAL TO 4TH CHAR
- BX6 X1+X6 FORM LOGIC NAME
- SA6 APLACOM
- SA6 SWK1+1 ALSO STORE IN MASTOR REQ BUFFER
- MASTOR SWK1,MS.ILOG IDENTIFY CONDENSOR AS LOGIC
- MX0 -11
- SA1 SWK1 CHECK MASTOR REPLY CODE
- AX1 12
- BX1 -X0*X1 (X1) = MASTOR REPLY CODE
- ZR X1,SRDY3 IF LOGIC NAME ACCEPTED
- SA1 APLACOM (X1) = LAST LOGIC NAME TRIED
- MX0 18
- BX6 X0*X1 (X6) = 12/*CO,6/MIDCHAR,42/0
- AX1 36 SHIFT LETTER TO BOTTOM
- MX0 -6
- BX1 -X0*X1 (X1) = LAST LETTER TRIED
- SX2 X1-1R9 TEST FOR ORDINAL OUT OF RANGE
- SX1 X1+1 INCREMENT ORDINAL
- NZ X2,SRDY2.1 TRY NEW LOGIC NAME
- SB1 =15CDUPLICATE LOGIC
- RJ S=MSG
- * /--- BLOCK ROUTINES 00 000 84/12/07 08.30
- RJ S=ABORT
- *
- SRDY3 MASTOR SWK1,MS.SCK,B0 START MILLISECOND CLOCK
- EQ S=READY
- *
- * /--- BLOCK ROUTINES 00 000 79/09/22 20.21
- *
- *
- *
- * S=KILL TERMINATE THIS JOB
- *
- ENTRY S=KILL
- S=KILL EQ *
- ENDRUN
- EQ S=KILL
- *
- *
- *
- * S=ABORT ABORT CONTROL POINT
- *
- *
- ENTRY S=ABORT
- S=ABORT EQ *
- ABORT
- + EQ *
- *
- * /--- BLOCK ROUTINES 00 000 79/07/05 03.28
- SETR SPACE 5,11
- ** S=SETR - SET ADDRESS OF MASTOR REQUEST BUFFER
- *
- * INFORMS MASTOR OF REQUEST BUFFER ADDRESS
- *
- * ENTRY - ((B1)) = REQUEST BUFFER ADDRESS
- * (B2) = LENGTH OF REQUEST BUFFER
- ENTRY S=SETR
- S=SETR PS
- SA1 B1
- BX6 X1
- SA6 SWK1+1
- SX6 B2 LENGTH OF REQUEST BUFFER
- MX1 1
- BX6 X1+X6 SET *NO REPLY AREA* FLAG
- SA6 A6+1
- SX6 3RNEW MARK AS NEW STYLE AREA
- SA6 A6+1
- MASTOR SWK1,MS.SETR
- SA1 SWK1
- MX0 -11
- AX1 12
- BX1 -X0*X1
- ZR X1,S=SETR IF NO ERROR
- SB1 =C/ MASTOR SETR REJECT./
- RJ S=MSG
- RJ S=ABORT
- * /--- BLOCK ECSPRTY 00 000 81/06/25 04.18
- *
- ENTRY ECSPRTY
- *
- *
- *
- *
- LIST X
- *
- *CALL ECSPRTY
- *
- *
- * /--- BLOCK END 00 000 79/02/14 15.22
- *
- CONDNAM DATA 4R"LGC.COND" (COA1)
- MSCKCNT BSSZ 1 COUNT WHEN S=WAIT STARTS CLOCK
- OSYSCLK BSS 1 PREVIOUS VALUE OF *SYSCLOK*
- ENDTIME BSS 1 TIME TO LEAVE RECALL (S=WAIT)
- *
- *
- SWK1 BSS 1
- SWK2 BSS 1
- SWK3 BSS 1
- *
- *
- END
plato/source/plaopl/csys.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator