ASMB,R,L,C,B
      HED #GET!  TABLE SUBROUNTINE 92413-16005 REV. A 
      NAM #GET!,7  92413-16005 REV A 24APR75
      ENT #GET! 
      EXT &6940 
* 
* 
*     THIS IS A COMMON ROUNTINE FOR ISA AND RTEB DEVICE SUBS
*      FOR GETTING PARAMETERS OUT OF &6940, THE TABLE 
*       BUILT FROM THE 6940 TABLE GENERATOR.
* 
* CALLING SEQUENCE
* (A)= SOFTWARE CHANNEL NUMBER
* 
*        JSB #GET!
*   LU   NOP
*   TYPE NOP
*   REL# NOP
*   ADR  NOP
*        (RETURN) 
* 
*        (A)= EFFECTIVE CHANNEL 
*        (B)= 0  NORMAL RETURN
*        (B) = -1 ERROR RETURN
* 
* 
#GET! NOP 
      LDB TOP       GET BASE PAGE LINK
      SSB,RSS        AND CHECK FOR INDIRECT 
      JMP *+4         NO,ITS THE TRUE ADDR
      ELB,CLE,ERB   STRIP INDIRECT BIT
      LDB 1,I        GET ADDR 
      JMP *-4         AND TEST AGAIN
      STB ADR          SAVE IT
      ADA TOP,I     TEST TO SEE 
      SSA,RSS       IF CHAN IS
      SZA,RSS        TOO SMALL
      JMP LOSE        GIVE ERROR
      ISZ ADR       BUMP POINTER
GET0  LDB ADR,I     GET CHAN #
      SSB           END OF TABLE? 
      JMP LOSE      YES,RETURN W/ ERROR 
      ADA 1,I       ADD NEG CHAR
      ISZ ADR       BUMP CTR
      SZA,RSS 
      JMP *+3 
      SSA,RSS       THIS UNIT?
      JMP GET0      NO,CONTINUE CHECKING
      CMA,INA       FIX REL 
      ADA 1,I        COUNT
      INB 
      STB ADR       STORE ADDRESS 
      INB            INCREMENT IT 
      LDB 1,I       GET LU
      STB #GET!,I   AND STORE 
      ISZ #GET!     BUMP PTR
      CLB           CLEAR DEVICE TPYE 
      STB #GET!,I    AND STORE
GET1  ISZ ADR       MOVE TO NEXT
      ISZ ADR        DEVICE ENTRY 
      ISZ #GET!,I   BUMP DEV TPYE CODE
      ADB ADR,I     ACCUM COUNTS
      ADA ADR,I 
      SSA           THIS DEVICE?
      JMP GET1      NO,CONTINUE CHECKING
      ISZ #GET!     BUMP POINTIR
      CMA,INA       FIX REL CT
      ADB 0         (B)=HARDWARE CHAN 
      ADA ADR,I     REL CT
      STA #GET!,I    AND STORE
      ISZ #GET!     BUMP GET
      ISZ ADR       GET 
      LDA ADR,I      TABLE ADDRESS
      STA #GET!,I     AND STORE 
      SWP           CHAN # INTO A 
      CLB           (B) FOR NORMAL RETURN 
GET2  ISZ #GET!     BUMP GET
      JMP #GET!,I    AND RETURN 
* 
LOSE  CCB           SET (B) FOR ERROR 
      ISZ #GET!     BUMP
      ISZ #GET!      GET
      ISZ #GET!       FOR 
      JMP GET2         RETURN 
ADR   NOP           TEMP STORAGE
TOP   DEF &6940     POINTER TO TABLE
      END 
      END$
          