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