.TITLE RETURN ; JEFFREY KODOSKY ARL NOV75 ; ; SUBR ; ENTRY: 1 ARG ; EXIT: 1 ARG ; ERRORS: A4, RETURN OCCURS OUTSIDE PROG CONTEXT ; T3, MARKED ITEM WITHOUT PROG OR ERRSET ; CALLS: NONE .GLOBL RETURN,ZRETURN,QA4ERR,ADPROG,ADERST,ENDLSP .GLOBL SSTART,QT3ERR RETURN: MOV (R5)+,R3 ;SAVE ANSWER MOV R4,R0 RET1: BIT #1,(R5)+ ;FIND NEXT MARKED ARG BNE RET2 ;JUMP IF ONE FOUND CMP R5,ENDLSP ;HIT TOP OF STACK? BLO RET1 ;NO: LOOP BACK TST -(R5) ;YES: LEAVE OBLIST ON QA4ERR ;AND TRAP TO A4 ERROR HANDLER RET2: CMP -(R0),#ADPROG ;FIND CORRESPONDING RETURN PC BEQ RET3 ;JUMP IF PROG FOUND CMP @R0,#ADERST BEQ RET1 ;CONTINUE SEARCH IF ERRSET FOUND CMP R0,SSTART BHI RET2 QT3ERR RET3: TST (R5)+ ;POP ALIST MOV R3,@R5 ;LOAD ANSWER MOV R0,R4 ;RESET SUBR STACK POINTER JMP @-(R4) ;RETURN TO PROG CALLER ZRETURN=.-RETURN .END