/16 EXIT TASK FOR RTS/8 V3 / / #10 V2B CONVERSION TO MACREL / #11 .TASK MACRO, CDF, CIF 0 / #12 TURN OFF KT8A / #13 MATCH EXIT ACTION WITH OS8SUP / #15 FSECT LITERALS BACK IN, LEVEL=0, NO CUR / #16 RTFLD CHANGE / VERS=16. XLIST 1 / / / / / / / / / /COPYRIGHT (C) 1976,1977,1978,1979 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 / 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 .FSECT EXITT, LEVEL=0 .EXTERNAL TSWFLG .TASK EXIT,EXIT 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) /BACK TO OUR SAFE DF CDF .FLD 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 RTS8 /INHIBIT TASK SWITCHING DCA I XTSWFLG ISZ MADDR JMP .-1 ISZ EXDLAY /ALLOW (MOST) I/O TO COMPLETE JMP .-3 IFZERO PDP8E IFNZRO PDP8E /DOES AN IOF IFNZRO KT8A <6200> /TURN OFF KT8A CIF CDF 0 TAD I (7746 /FORCE BATCH TO BE RELOADED AND (7377 DCA I (7746 JMP I L7600 /RETURN TO MONITOR SUBR, 0 EXDLAY, -60 XTSWFLG,TSWFLG /