.TITLE GOTO           /COMPUTED GOTO OBJECT TIME SUBROUTINE.
/ 
/ 
/                   FIRST PRINTING, FEBRUARY 1974
/ 
/ 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 RESPON-
/ SIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS
/ DOCUMENT.
/ 
/ THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FUR-
/ NISHED 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 PRO-
/ VIDED IN WRITING BY DIGITAL.
/ 
/ DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
/ FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIP-
/ MENT THAT IS NOT SUPPLIED BY DIGITAL.
/ 
/ COPYRIGHT (C) 1974, BY DIGITAL EQUIPMENT CORPORATION
/ 
/ 
        .EJECT
/COPYRIGHT 1970, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
/EDIT 3   10-14-70
/             CALLING SEQUENCE
/      LOAD   V               INDEX VALUE IN A-REG
/      JMS*   .GO
/             -N              NO OF STATEMENT ADDRESSES
/             ST ADDR(1)
/             ST ADDR(2)
/                 ..
/             ST ADDR(N)
       .GLOBL .GO,.ER
	.GLOBL GOTO
GOTO=.
.GO    CAL    0              /ENTRY-EXIT
       DAC    V              /STORE INDEX
       TAD    K00001         / (-1)
       SPA                   /WAS INDEX .GT. 0
       JMP    E              / NO-ERROR
       TAD*   .GO            / YES, ADD -N
       SPA                   /  (V-1) + (-N) IS V .GT. N
       JMP    A              /   NO
E      JMS*   .ER            /  YES, ERROR (ILLEGAL INDEX VALUE)
       .DSA   400007         /    (ERR 7....RECOVERABLE)
       LAC*   .GO
       CMA
       TAD    (000002)       /COMPUTE ERROR RETURN (NO GOTO)
       SKP
A      LAC    V              /SET V = V + BASE ADDR
       TAD    .GO
       DAC    V
       JMP*   V              /JUMP TO ST ADDR(V)
K00001        777777	
V      .DSA   0
       .END