/2 EXIT TASK FOR RTS/8 V2B VERS=1 XLIST 1 / / / / / / / / / /COPYRIGHT (C) 1976 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. / / / / / / / / / / XLIST 0 TASK= EXIT INIWT= RUNWT /MUST START IN RUN WAIT IFNDEF EXITFLD IFNDEF EXITLOC CUR= EXITFLD / MESSAGE FORMAT: / ADDRESS OF EXIT SUBROUTINE (SAME FIELD AS MESSAGE) / IF ADDRESS=0, THEN POST THIS MESSAGE WHEN DONE RUNNING / IF NO ADDRESS WAS 0, THEN RETURN TO OS/8 WHEN DONE RUNNING FIELD CUR%10 *EXITLOC START, AC4000 /DON'T WAIT IF NO MESSAGES CAL RECEIVE /RECEIVE NEXT MESSAGE MADDR, 0 /ADDRESS WILL BE LEFT HERE SNA /WAS THERE ANY MESSAGE? JMP DONE /NONE, WE ARE DONE DCA MCDF /YES, STORE AWAY CDF TO FIELD OF MESSAGE MCDF, HLT /EXECUTE CDF TO FIELD OF MESSAGE TAD I MADDR /GET MESSAGE (ADDRESS OF EXIT SUBROUTINE) CDF CUR /BACK TO OUR SAFE DF SNA /WAS AN EXIT SUBROUTINE SUPPLIED? JMP SNTNL /NO, THIS MEANS USER WANTS CONTROL BACK DCA SUBR /YES, SAVE ADDRESS USER WANTS CALLED CLA IAC /'CDF'+1='CIF' TAD MCDF /FORM CIF TO FIELD OF EXIT SUBROUTINE DCA .+1 HLT /EXECUTE IT JMS I SUBR /CALL USER'S EXIT SUBROUTINE TAD MCDF /DOESN'T HURT IF SUBR SET WRONG DF DCA EFCDF AC7775 /EVENT FLAG IS 3 LOCATIONS BACK EXITGO, TAD MADDR /PUT ADDRESS OF EVENT FLAG IN AC CAL POST /GO POST IT EFCDF, HLT JMP START /GO GET NEXT MESSAGE SNTNL, TAD SAVEF /LOOK AT OLD SAVED EVENT FLAG SZA /OUGHT TO BE 0 HLT /WASN'T L7600, 7600 /CLA TAD MCDF /SAVE FIELD OF MESSAGE DCA SAVCDF AC7775 /BUMP BACK MADDR TO POINT TAD MADDR /TO EVENT FLAG DCA SAVEF /SAVE IT JMP START /GET NEXT MESSAGE, DON'T POST THIS ONE DONE, TAD SAVEF /DID ANYONE WANT CONTROL BACK SNA CLA JMP GOS8 /NO, RETURN CONTROL TO OS/8 (OR OTHER MONITOR) TAD SAVEF /YES, SET ADDRESS OF EVENT FLAG DCA MADDR TAD SAVCDF /SET FIELD OF EVENT FLAG DCA EFCDF DCA SAVEF /ZERO SAVED FLAG JMP EXITGO /GO POST OLD EVENT FLAG SAVEF, 0 /SAVED EVENT FLAG SAVCDF, 0 /CDF OF SAVED EVENT FLAG GOS8, CDF 0 /INHIBIT TASK SWITCHING DCA I XTSWFLG ISZ MADDR JMP .-1 ISZ EXDLAY /ALLOW (MOST) I/O TO COMPLETE JMP .-3 TAD I M1 /TURN OFF BACKGROUND BIT AND L6777 DCA I M1 IFZERO PDP8E IFNZRO PDP8E /DOES AN IOF CIF CDF 0 JMP I L7600 /RETURN TO MONITOR SUBR, 0 EXDLAY, -60 XTSWFLG,TSWFLG /DON'T USE LITERALS IN CASE USER WANTS TO /PACK THIS ROUTINE INTO FREE SPACE ON ONE /OF HIS PAGES M1, -1 L6777, 6777