ASMB,R,L,C
* 
*  **************************************************************** 
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS      * 
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,       * 
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * 
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.        * 
*  **************************************************************** 
* 
*   NAME: PART OF MATH LIBRARY
*   SOURCE:  24998-18XXX  SEE NAM FOR LAST THREE DIGITS 
*   RELOC: PART OF 24998-12001
*   PGMR: BG & JTS
* 
      NAM .SWCH,7 24998-1X067 REV.2001 750701 
      ENT .SWCH 
*         ************************************* 
*         * .SWCH - EXECUTE A SWITCH TEST AND * 
*         *         JUMP AS INDICATED.        * 
*         *                                   * 
*         *    A = VALUE OF SWITCH (1 TO NO.  * 
*         *        OF LABELS IN DECLARATION). * 
*         *                                   * 
*         *    IF A = 0 OR GRTR THAN NO. OF   * 
*         *       LABELS IN SWITCH CONTROL RE-* 
*         *       TURNS TO NEXT STATEMENT IN  * 
*         *       THE OBJECT PROGRAM          * 
*         ************************************* 
.SWCH NOP       =1ST LOC IN LINKAGE(LABEL COUNT)
      SSA,RSS       SKIP IF COUNT IS NEGATIVE 
      SZA,RSS        A = 0? 
      JMP SWCHX     YES - BAD COUNT - RETURN
      LDB .SWCH,I   GET LABEL COUNT 
      CMB           MAKE LABELCOUNT+1 NEGATIVE
      ADB 0         B _ A+B 
      ADA .SWCH     POINT A REG. AT DESIRED LABEL 
      SSB           IS 'A' GREATER THAN LABEL COUNT?
      JMP *+3       NO - JUMP TO DESIGNATED ADDRESS 
SWCHX LDA .SWCH     COMPUTE ADDRESS FOR ABNORMAL EXIT 
      ADA MIN2      FROM SWITCH ROUTINE 
      LDA 0,I 
      JMP 0,I       RETURN TO THAT ADDRESS
MIN2  DEC -2
      END 
* 
* 
                                                                                                                                                          