IDENT XTASK
ENTRY XTASK
LCC OVERLAY(XTASK,0,0)
SST BEGN,CMBL
SYSCOM B1
*COMMENT EXECUTE NAMED TASK.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
XTASK TITLE EXECUTE NAMED TASK.
XTASK SPACE 4,10
*** XTASK - EXECUTE NAMED TASK.
* E. D. REDIG. 79/10/03.
XTASK SPACE 4,25
*** XTASK IS A SPECIAL TASK SCHEDULER USED TO EXECUTE
* ALMOST ANY NAMED TASK. IT WILL NOT EXECUTE TASKS
* BY THE NAMES - *BTASK*, *CTASK*, *ITASK*, *KDIS*,
* *MSABT*, *OFFTASK*, *RCTASK*, *RTASK*, *SYSMSG*, AND
* *XTASK*. THESE ARE THE NAMES OF SYSTEM TASKS. *XTASK*
* MAY BE USED TO SCHEDULE *LOGT* AS A MEANS OF LOGGING.
* A TERMINAL OUT OF TRANSACTION MODE. *XTASK* CAN BE
* CALLED VIA *ITASK* BY THE FOLLOWING INPUT.
*
* EX.TASK
*
* WHERE:
*
* EX. SPECIAL THREE-CHARACTER CODE WHICH
* CAUSES *ITASK* TO SCHEDULE *XTASK*.
*
* TASK ONE- TO SEVEN-CHARACTER ALPHANUMERIC
* TASK NAME, LEFT-JUSTIFIED WITH A
* NON-ALPHANUMERIC CHARACTER TERMINATOR.
*
* NOTE: SEE *ITASK* FOR CAUTION ON USE OF *XTASK*.
* COMMON DECKS.
*CALL COMKTAF
*CALL COMKFLD
*CALL COMKIPR
BEGN BSS 0 SAVE ORIGIN COUNTER
*CALL COMKCBD
ORG BEGN RESTORE ORIGIN COUNTER
*CALL COMKMAC
*CALL COMSPRD
XTASK SPACE 4,15
*** COMMUNICATION BLOCK HEADER WORDS AND MESSAGE.
*
*T TRSQ 12/ DB,24/ UA,24/ SEQ
*T, TNAM 42/ TN,18/
*T, TMSW 18/ EX,42/ TASK
*
* DB DATA BASE FOR TERMINAL.
* UA USER ARGUMENT FIELD FOR TERMINAL.
* SEQ TRANSACTION SEQUENCE NUMBER.
* TN TERMINAL NAME.
* EX EXECUTE CHARACTER CODE *EX.*.
* TASK DESIRED TASK TO BE SCHEDULED.
BSS CMBL RESERVE SPACE FOR COMMUNICATION BLOCK
XTASK SPACE 4,15
** XTASK - EXECUTE NAMED TASK.
*
* ENTRY COMMUNICATION BLOCK LOADED.
*
* EXIT DESIRED TASK SCHEDULED.
*
* USES A - 1, 4, 6.
* B - 1, 2, 3.
* X - 1, 2, 3, 4, 5, 6.
*
* CALLS CBT.
*
* MACROS CALLTSK, CEASE, FMSG, SEND.
XTASK SB1 1
SA1 TMSW READ TERMINAL INPUT
SA4 A1+B1 GET 8TH CHARACTER
MX2 -42
SX5 1R+
LX4 5-59 SHIFT 8TH CHARACTER FOR MASK
MX3 -6 ONE CHARACTER MASK
BX1 -X2*X1 MASK OFF TRANSACTION CODE
BX4 -X3*X4 MASK OFF 8TH CHARACTER
LX1 5-41 SHIFT MESSAGE INTO POSITION
SB2 6
LX4 23-59-5+59 SHIFT 8TH CHARACTER INTO POSITION
BX6 X6-X6
SB3 60
BX1 X1+X4 ADD 8TH CHARACTER INTO MESSAGE
XTA1 BX4 -X3*X1 GET A CHARACTER
ZR X4,XTA2 IF END OF TASK NAME
IX2 X4-X5
PL X2,XTA3 IF NOT ALPHANUMERIC
LX6 6
BX6 X6+X4 TRANSFER A CHARACTER
LX1 6
SB3 B3-B2
EQ XTA1 LOOP FOR NEXT CHARACTER
XTA2 SB2 12
EQ B2,B3,XTA5 IF TOO MANY CHARACTERS IN TASK NAME
XTA3 ZR X6,XTA5 IF ZERO LENGTH TASK NAME
SB2 XTAE START OF SYSTEM TASK TABLE
LX6 X6,B3 LEFT JUSTIFY MESSAGE
SB3 XTAE+XTAF END OF SYSTEM TASK TABLE
XTA4 SA1 B2+ GET NEXT TABLE ELEMENT
BX2 X1-X6
SB2 B2+B1 INCREMENT TABLE INDEX
ZR X2,XTA5 IF SYSTEM TASK
LT B2,B3,XTA4 IF NOT END OF TABLE
SA6 XTAD TASK NAME
CALLTSK XTAD,C EXECUTE TASK WITH CEASE
XTA5 SEND XTAA SEND ERROR MESSAGE
SA1 TRSQ FIRST WORD OF COMMUNICATIONS BLOCK
RJ CBT CHECK FOR BINARY TERMINAL
ZR X6,XTA6 IF NOT BINARY
SA6 XTAC SET BINARY REQUEST
SEND XTAB SEND BINARY INPUT REQUEST
XTA6 CEASE EXIT TASK WITH CEASE
XTAA FMSG (INCORRECT TASK NAME.)
XTAB VFD 12/0,18/XTAC,12/0,18/1 SEND CONTROL WORD
XTAC CON 0 BINARY REQUEST WORD
XTAD BSSZ 2 TASK LIST FOR *CALLTSK*
XTAE BSS 0 SYSTEM TASK TABLE
VFD 42/0LBTASK,18/0
VFD 42/0LCTASK,18/0
VFD 42/0LITASK,18/0
VFD 42/0LKDIS,18/0
VFD 42/0LMSABT,18/0
VFD 42/0LOFFTASK,18/0
VFD 42/0LRCTASK,18/0
VFD 42/0LRTASK,18/0
VFD 42/0LSYSMSG,18/0
VFD 42/0LXTASK,18/0
XTAF EQU *-XTAE LENGTH OF SYSTEM TASK TABLE
* COMMON DECK.
*CALL COMKCBT
END XTASK