ASMB,R,L,C
      HED @DISP - 91705-16102 * (C) HEWLETT PACKARD CO. 1976
      NAM @DISP,6 91705-16102 REV A 741230
      SPC 1 
******************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976.  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.       *
******************************************************************
      SPC 2 
* 
* @DISP 
* SOURCE: 91705-18102 
* BINARY: 91705-16102 
* JIM HARTSELL
* JULY 30, 1974 
* 
* PRIVILEDGED SUBROUTINE FOR RTE-C SATELLITE
* RESIDENT LIBRARY. @DISP RETURNS THE ADDRESS OF
* THE HIGHEST PRIORITY QUEUE ENTRY (OR FIFO) THAT IS
* FLAGGED "READY TO SHIP". IF NONE, OR AN ENTRY IS
* PENDING A REPLY, @DISP WILL RETURN A ZERO.
* 
* CALLING SEQUENCE: (CALLED BY @REFA, @INTR)
* 
*         JSB @DISP 
* 
*           ON RETURN, (A) = QUEUE ENTRY ADDR, OR ZERO. 
* 
      ENT @DISP 
* 
      EXT %ACT,$LIBR,$LIBX
* 
A     EQU 0 
B     EQU 1 
* 
* INITIALIZE TO SEARCH PARMB REQUEST QUEUE. 
* 
@DISP NOP 
      JSB $LIBR     DISABLE THE INTERRUPT SYSTEM. 
      NOP 
* 
      LDA MD100     INITIALIZE TO LOWER THAN
      STA TEMP1     LOWEST POSSIBLE PRIORITY. 
      CLA 
      STA QENT      SET FOR "NONE FOUND". 
      LDA %ACT
      STA TEMP2     TOP OF ACTIVE LIST. 
* 
* SEARCH THE QUEUE FOR AN ENTRY THAT'S READY TO SHIP. 
* 
LOOP  LDA TEMP2,I   GET LINK TO NEXT ENTRY. 
      STA TEMP2 
      SZA,RSS 
      JMP EOL       QUIT IF END OF LIST.
      INA 
      LDB A,I       FETCH FLAG WORD.
      CPB B2
      JMP EOLA      QUIT IF ENTRY PENDING A REPLY.
      CPB B1        THIS ONE READY TO SHIP? 
      RSS 
      JMP LOOP      NO, GO TO NEXT ENTRY. 
* 
* AN ENTRY READY TO SHIP HAS BEEN FOUND. CHECK PRIORITY.
* 
      ADA B2
      LDB B,I       GET PRIORITY. 
      ADB TEMP1 
      SSB,RSS       GREATER THAN CURRENT PRIORITY?
      JMP LOOP      NO GO TO NEXT ENTRY.
* 
* THE ENTRY IS HIGHER PRIORITY. UPDATE POINTERS.
* 
      LDB A,I       UPDATE HIGHEST CURRENT
      CMB,INB       PRIORITY. 
      STB TEMP1 
      LDA TEMP2     UPDATE ADDRESS OF 
      STA QENT      QUEUE ENTRY TO SERVICE. 
      JMP LOOP      GO SEARCH REST OF QUEUE.
* 
* END OF LIST OR END OF SEARCH. 
* 
EOLA  CLA           (A) = 0 WHEN ENTRY FOUND THAT 
      JMP EXIT      IS PENDING A REPLY. EXIT. 
* 
EOL   LDA QENT      ENTRY FOUND?
      SZA,RSS 
      JMP EXIT      NO, EXIT WITH (A) = 0.
      INA 
      LDB B2        YES, SET FLAG = "PARMB SENT". 
      STB A,I 
* 
      LDA QENT      ADDR OF QUEUE ENTRY.
* 
EXIT  JSB $LIBX     ENABLE INTERRUPT SYSTEM.
      DEF @DISP 
      SPC 5 
* 
* CONSTANTS AND WORKING STORAGE.
* 
B1    OCT 1 
B2    OCT 2 
MD100 DEC -100
TEMP1 NOP 
TEMP2 NOP 
QENT  NOP 
* 
SIZE  EQU * 
* 
      END 
                                                                                    