/.TASK DIRECTIVE AS A MACRO / / / / / / / / / /COPYRIGHT (C) 1977 BY DIGITAL EQUIPMENT CORPORATION / / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. / /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY /DIGITAL. / / / / / / / / / / /.TASK DIRECTIVE AS A MACRO-V1A /WHERE TSKNUM IS TASK NUMBER (DEFAULT "TASK") / STRTAD IS TASK STARTING ADDRESS (DEFAULT "START" OR ".") / STATUS IS TASK FLAGS (DEFAULT "INIWT" OR 0) / VERSON IS TASK VERSION (DEFAULT "VER" OR 0) / AC IS TASK AC (DEFAULT 0) / MESS1 IS MESSAGE TABLE ENTRY 1 (DEFAULT 0) / MESS2 IS MESSAGE TABLE ENTRY 2 (DEFAULT 0) .MACRO .TASK TSKNUM,STRTAD,STATUS,VERSON,AC,MESS1,MESS2 .IF NB TSKNUM <..TASK=TSKNUM> //USES SYMBOLS: .IF BL TSKNUM <..TASK=TASK> //..TASK=CURRENT TASK NUMBER $TASK=. //$TASK=CURRENT ADDRESS .IF ABS $TASK <$$TASK=.FLD> //$$TASK=CURRENT FIELD .DSECT TSTABX //SET UP TASK STATE TABLE *..TASK-1^4 //ORIGIN IN //SET $TASK TO STARTING //ADDRESS IF NOT "." .IF NB STRTAD <$TASK=STRTAD> .IF BL STRTAD < IFDEF START <$TASK=START> > //DO STARTING FIELD .IF ABS $TASK <$$TASK%10+$$TASK> .IF REL $TASK < %10+ > $TASK //DO STARTING ADDRESS //DO ACC .IF NB AC .IF BL AC <0> //DO MQ .IF NB VERSON .IF BL VERSON < IFDEF VER IFNDEF VER <0> > .SECT * //RESTORE OLD SECT .DSECT TFTABX //SET UP TASK FLAGS TABLE *..TASK-1 //ORIGIN INTO IT .IF NB STATUS .IF BL STATUS < IFDEF INIWT IFNDEF INIWT <0> > .SECT * //RESTORE OLD SECT .DSECT MSGTBX //SET UP MESSAGE TABLE *..TASK-1^2 //ORIGIN INTO TABLE .IF NB MESS1 .IF BL MESS1 <0> .IF NB MESS2 .IF BL MESS2 <0> .SECT * //RESTORE OLD SECT .ENDM .TASK //DONE